Domanda

Sto usando Bit Miracolo LibTiff.Net.

Non riesco a trovare alcun codice di esempio per fare un'immagine a colori 32bpp ARGB e scrivere il bitmap a un TIFF utilizzando questa libreria.

Qualcun altro ha tentato questo?

Ecco il mio codice di esempio. Si produce un file, ma non può essere visto da qualsiasi software che ho.

EDIT: Il codice funziona ora, ma i colori sono sbagliate

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

Grazie

È stato utile?

Soluzione

Modifica La versione più recente di LibTiff.Net contiene campioni per la conversione di uno System.Drawing.Bitmap a a 32 bit o 24 bit colore LZW compressa immagini TIFF.

Ci sono anche campioni per la conversione di un'immagine TIFF a a 32 bit o System.Drawing.Bitmaps 24-bit . / Modifica

Si può anche voler rivedere "programmazione grafica con libtiff .net "articolo nella documentazione. Si dovrebbe dare informazioni di base sulla creazione di i file TIFF a colori.

Disclaimer: io sono uno dei manutentori della biblioteca

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top