如何将JPEG图像缩小,使文本尽可能清晰?

3
我有一些JPEG图片需要缩小到原始大小的80%左右。原始图像尺寸约为700px × 1000px。图像包含一些计算机生成的文本和可能包含一些图形(类似于公司Word文档中的内容)。
如何缩放图像,使文本尽可能清晰可读?目前我们使用双三次插值将图像缩小,但这会使文本变得模糊和不清晰。

5
与缩放算法无关:我想知道为什么你在使用JPEG格式来处理文本。同时请记住,无论您如何缩放图像,文本周围已经存在伪影,并且在重新压缩后将会出现新的伪影,这肯定不会有助于阅读清晰度。 - Joey
1
我们已经有了一堆庞大的JPEG文件,我们不想重新生成它们。 - Juha Syrjälä
不是要质疑Joey(当然JPEG并不是最适合文本的图像格式),但是质疑现状并没有什么帮助...此外,如果所说的图像还包含其他图像(比如从杂志扫描得到的),考虑到文件大小的限制,JPEG确实可能是最好的单个图像格式。(更好的方法是采用两部分方法,将透明的png与文本叠加在图像上方作为jog,但这需要各种预处理和后处理...) - Oskar Austegard
3个回答

2
如果你不一定要压缩到80%,你可以尝试从http://www.ijg.org/获取并构建djpeg,因为它可以将你的JPEG图像解压为6/8(75%)或7/8(87.5%)大小,而文本质量仍然相当不错:
原始图片:http://img218.imageshack.us/img218/969/textdp.jpg 7/8 压缩图片:http://img576.imageshack.us/img576/7342/text78.jpg 3/4 压缩图片:http://img294.imageshack.us/img294/1991/text68.jpg (SO决定在内联显示时缩放图像)
可能有类似的缩放算法存在,但这是一个简单易用的现成解决方案。

2

两个选项:

  1. 使用不同的重采样算法。 Lanczos 可以给你一个更少模糊的结果。

  2. 您可以使用先进的JPEG库将8x8块重新采样为6x6像素。


我会研究一下Lanczos。你有没有想法它相对于双三次插值的性能密集程度? - Juha Syrjälä
1
是的,您需要多达25个样本而不是4个,因此它更昂贵,但由于您有固定的调整大小,您可以预先计算所有不同子位置的样本权重,这应该与JPEG解码一样计算密集。 - Ritsaert Hornstra

1

缩小规模始终会有损失,但这取决于你的权衡。

  1. JPEG 图像模糊和伪影是常见问题,因此建议第一次生成图像时就使用正确的大小。
  2. Lanczos 是一种好的解决方案,但也需要进行权衡。
  3. 如果只是关心文本并且想要改善它,可以尝试在重采样后应用膨胀滤镜。这将纠正一些模糊问题,但可能会影响图形。如果你能接受这种影响,那就很好。或者,如果你能够识别出文本区域,可以仅对这些区域应用膨胀滤镜。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接