我有一个定制的Web服务器,用于扫描文档。要激活扫描仪并在屏幕上加载图像,我有一个扫描按钮,链接到带有以下图像标记的页面:
<img src="http://myserver/archive/location/name.jpg?scan" />
当服务器收到?扫描文件的请求时,它会流式传输以下命令的输出,并将其写入请求位置的磁盘。
scanimage --resolution 150 --mode Color | convert - jpg:-
这很好用,我很满意这个简单的设置。问题是convert(ImageMagick)缓冲了scanimage的输出,并且仅在扫描完成时才吐出jpeg图像。结果是网页长时间加载存在超时风险。它还使我无法在扫描时看到图像,否则这应该是可能的,因为它正好是基线编码的jpeg图像在慢速连接上显示的方式。
我的问题是:是否可以在不缓冲图像的情况下进行jpeg编码,或者操作本身是全局的?如果可能,我可以使用哪些工具?有人认为我有单独编码八行的条带,但我不知道如何把这些块放在一起。如果不可能,是否有另一种压缩格式允许这种流水线编码?我唯一的限制是主流浏览器应支持该格式。
谢谢!
答案 0 :(得分:1)
您想要使用空间填充曲线细分图像。 sfc recursivley将表面细分为较小的图块,因为它的分形维数将2d复杂度降低到1d复杂度。细分图像后,可以使用此曲线连续扫描图像。或者您可以使用BFS和某种图像低频细节滤镜来连续扫描图像的更高分辨率。你想寻找尼克的空间索引希尔伯特曲线四叉树博客,但我认为你不能把这些瓷砖与jpg格式(猫吗?)放在一起。或者你可以不断降低分辨率?
scanimage --resolution [1-150] --mode Color | convert - jpg:-