2010-10-18 143 views
1

我正在使用Bit Miracle LibTiff.Net。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(); 
} 

感谢

回答

1

编辑LibTiff.Net的最新版本包含的样本为System.Drawing.Bitmap转换为32-bit24-bit颜色LZW压缩的TIFF图像。

还有一些用于将TIFF图像转换为32-bit24-bit System.Drawing.Bitmaps的样本。 /EDIT

您还可以查看在文档"Graphics programming with LibTiff.Net"文章 。它应该为您提供有关创建颜色TIFF文件的基本信息。

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

相关问题