[英]How to encode System.Drawing.Bitmap to CCITT with C#?
我需要将黑白图像写入PDF文件,因此我认为更好的方法是使用CCITTDecode。 问题是,我该如何保存我的
System.Drawing.Bitmap img
使用正确的编码算法访问文件流? 我尝试了以下代码
EncoderParameters eps = new EncoderParameters(1);
eps.Param[0] = new EncoderParameter(Encoder.Compression, (long)EncoderValue.CompressionCCITT4);
ImageCodecInfo[] ie = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo tiffEncoder = null;
for (int i = 0; i < ie.Length; i++)
{
if (ie[i].MimeType == "image/tiff")
{
tiffEncoder = ie[i];
break;
}
}
img.Save(_stream, tiffEncoder, eps);
但是输出是整个TIFF文件(包括标题和其他标记)。 我只需要原始数据,因为解码参数以PDF格式提供。
System.Drawing.Bitmap
没有提供任何方法来仅保存图像的原始数据。
在这种情况下,我认为某些第三方库会更好地为您服务。 例如,您可以尝试LibTiff.Net库(由我公司生产)。 该库是免费的(商业友好的BSD许可证)开源软件。
LibTiff.Net可以使用CCITT编码System.Drawing.Bitmap,也可以打开已经编码的文件。 之后,您可以使用ReadRawStrip和ReadRawTile访问原始图像数据。
这是一个可能对您有用的示例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.