【发布时间】:2011-03-01 15:34:49
【问题描述】:
我有一个来自扫描仪的 Tiff 文件。它的分辨率为 300 dpi。但稍后我需要将其更改为不同的值,例如 100。
在不丢失初始压缩和颜色深度的情况下,最好的方法是什么?
我已经尝试用Bitmap.FromFile()打开Tiff,但我得到了OutOfMemoryException,也使用了FreeImage库,但是在这里,如果Tiff是灰度的,它总是使用 LZW 压缩而不是 JPEG。我知道 LZW 更好,但 JPEG 对我来说是必须的。
【问题讨论】:
-
几点:首先,
dpi(每英寸点数)与输出有关,而不是像素(并且经常被这样滥用)。严格处理图像时您想要的术语是ppi(每英寸像素数)。其次,根据定义,JPEG 是有损的,而 LZW 不是。 (虽然有lossless JPEG standard。)第三,改变图像中的像素数被称为resampling,当减少图像的ppi时,你总是会丢失细节。 -
如果你想保持压缩,你不能用 Bitmap.FromFile() 解码像素。没有办法在不损失质量的情况下将其恢复为 JPEG 格式。
-
你能发布一个示例图片的链接吗?
标签: c# image-manipulation jpeg tiff freeimage