1

我正在使用 Bit Miracle LibTiff.Net。

我找不到任何示例代码来获取 32bpp ARGB 彩色图像并使用此库将位图写入 TIFF。

有没有其他人尝试过这个?

这是我的示例代码。它会生成一个文件,但我拥有的任何软件都无法查看它。

编辑:代码现在可以工作,但颜色是错误的!

public static void WriteTiff(Image image, string fileName)
{
    Bitmap target = image as Bitmap;
    BitmapData bmd = target.LockBits(
        target.GetRectangle(),
        ImageLockMode.ReadOnly,
        PixelFormat.Format32bppArgb);
    var bits = new byte[bmd.Stride * bmd.Height];
    Marshal.Copy(bmd.Scan0, bits, 0, bits.Length);
    target.UnlockBits(bmd);

    Tiff tiff = Tiff.Open(fileName, "w");
    tiff.SetField(TiffTag.IMAGEWIDTH, target.Width);
    tiff.SetField(TiffTag.IMAGELENGTH, target.Height);
    tiff.SetField(TiffTag.COMPRESSION, Compression.NONE);
    tiff.SetField(TiffTag.PHOTOMETRIC, Photometric.RGB);
    tiff.SetField(TiffTag.BITSPERSAMPLE, 8);
    tiff.SetField(TiffTag.SAMPLESPERPIXEL, 4);
    tiff.SetField(TiffTag.ROWSPERSTRIP, target.Height);
    tiff.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);

    tiff.WriteEncodedStrip(0, bits, bits.Length);
    tiff.Close();
}

谢谢

4

1 回答 1

1

编辑LibTiff.Net 的最新版本包含将 System.Drawing.Bitmap 转换为32 位24 位彩色 LZW 压缩 TIFF 图像的示例。

还有用于将 TIFF 图像转换为32 位24 位System.Drawing.Bitmaps 的示例。 /编辑

您可能还想查看文档中的“使用 LibTiff.Net 进行图形编程”(第 1部分、第 2 部分)文章。它应该为您提供有关创建彩色 TIFF 文件的基本信息。

免责声明:我是图书馆的维护者之一。

于 2010-10-18T17:57:02.063 回答