2010-10-18 166 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文件的基本信息。

聲明:我是圖書館的維護者之一。

相關問題