【发布时间】:2013-01-06 21:32:51
【问题描述】:
我们有一个系统可以提供 8 位灰度图像,无论是 tiff 还是 jpg 格式。但是,我们必须处理图像的组件要求图像为 8 位 jpg 格式。
当我使用 .Net 将 tiff 图像保存为 jpg 时,它会将其转换为 24 位图像。
有没有一种方法可以简单快速地将 8 位灰度 tiff 图像转换为等效的 jpg?
【问题讨论】:
-
你有一些目标组件可以接受的示例 jpg 文件吗?我怀疑它们也是 24 位图像(jpg 的标准),但每个红色、绿色和蓝色通道都将保存相同的数据。
-
非常晦涩,GDI+ 不支持。尝试使用带有 BitmapPalettes.Gray256 调色板的 JpegBitmapEncoder 类。
-
@ChrisF,我不是 jpg 专家,但这是 Windows 和 IrfanView 告诉我的。例如,如果我查看 jpg 文件的属性,我看到位深度是 8。我会看看我是否可以在某处上传示例图片。
-
@HansPassant,我不知道您建议的解决方案是否有效,但不幸的是我使用不支持
BitmapPalettes.Gray256的.Net 2.0。 -
@HansPassant,我们都可以幻想每个人都是最新的,不需要支持“旧”技术,或者我们可以看看现实生活,看看它有多么不同.那么,“为什么程序员会卡在一段 8 年前的代码上”?因为你的客户这么说;你不能仅仅为了升级一个工作系统而升级它。是否“过于本地化”?我不这么认为。 .Net 2.0 被广泛使用并且仍然完全受支持的框架。如果你在等它死去,请听我的建议,不要屏住呼吸;从今天起,我猜你会等不少于 2 年。
标签: .net image-processing .net-2.0