我知道使用imageinterlace
可以创建渐进式图像,但我需要知道是否可以实际请求进展中的特定步骤。假设Jpeg文件是使用3级扫描创建的,我是否可以将其降级到仅2级或1级?
答案 0 :(得分:2)
在构建JPEG时,这似乎不是你可以实际控制的东西。
来自Wikipedia's article on JPEG:
基线JPEG还支持逐行编码。虽然顺序编码一次编码单个块的系数(以Z字形方式),但是逐行编码一次编码所有块的相似位置系数,然后是所有块的下一个定位系数,依此类推。因此,如果图像被分成N×8×8块{B0,B1,B2,...,Bn-1},则逐行编码对所有块编码Bi(0,0),即,对于所有i = 0 ,1,2,...,N-1。然后编码所有块的Bi(0,1)系数,接着是所有块的Bi(1,0)系数,然后是所有块的Bi(2,0)系数,依此类推。这里应该注意的是,一旦对所有相似位置的系数进行了编码,下一个要编码的位置就是在the figure above中所示的之字形遍历中的下一个位置。
鉴于描述,无法实际控制JPEG隔行扫描的性质。传递次数是标准和图像格式本身的一部分。
在most other image formats中同样无法控制,其中大多数也明确地在其标准中引用了一个且仅有一个隔行扫描公式,但TGA除外,它有两个。
答案 1 :(得分:0)
Photoshop允许您选择渐进式JPEG上的扫描次数(3,4或5)。
imageinterlace将$ interlace值作为int而不是bool,这让我想知道一个值> 0不只是启用它而是选择扫描次数。手册没有证实这一点,但值得一试。
此外,我不知道扫描计数是否存在低于3或高于5的情况。在这种情况下,你认为他们必须提到它,所以你不会选择1作为价值......但是谁知道。我可以稍微玩一下。
答案 2 :(得分:0)
JPEG图像实际上并不是隔行扫描的。逐行JPEG允许您为每个8x8数据块打破DC系数和AC系数范围。这样可以优化数据,但每次扫描都适用于所有像素(与实际隔行扫描不同)。
JPEG允许您指定逐行扫描图像的扫描次数。 JPEG术语是“光谱选择”。在AC系数的情况下,您还可以灵活地订购扫描。
问题在于JPEG在这里具有很大的灵活性,很难创建一个允许您利用所有这些灵活性的编程或用户界面。
每个组件必须至少扫描2次(否则它不会是渐进式的)。