繁体   English   中英

如何使用C#将System.Drawing.Bitmap编码为CCITT?

[英]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,也可以打开已经编码的文件。 之后,您可以使用ReadRawStripReadRawTile访问原始图像数据。

这是一个可能对您有用的示例:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM