2010-10-18 18 views
1

J'utilise Bit Miracle LibTiff.Net.Conversion d'image couleur LibTiff.Net

Je ne trouve pas d'exemple de code pour prendre une image couleur ARB 32bpp et écrire le bitmap sur un TIFF en utilisant cette bibliothèque.

Est-ce que quelqu'un d'autre a essayé cela?

Voici mon exemple de code. Il produit un fichier, mais il ne peut pas être vu par un logiciel que j'ai.

EDIT: Le code fonctionne maintenant, mais les couleurs sont fausses!

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(); 
} 

Merci

Répondre

1

EDIT La dernière version de LibTiff.Net contient des échantillons pour la conversion d'un System.Drawing.Bitmap à 32-bit ou 24-bit couleur LZW images TIFF compressées.

Il existe également des exemples de conversion d'une image TIFF en 32-bit ou en 24-bit System.Drawing.Bitmaps. /EDIT

Vous pouvez également consulter l'article "Graphics programming with LibTiff.Net" dans la documentation. Il devrait vous donner des informations de base sur la création de fichiers TIFF couleur . Clause de non-responsabilité: Je suis l'un des mainteneurs de la bibliothèque. Je suis l'un des mainteneurs de la bibliothèque.