Frage

Ich verwende Bit Miracle LibTiff.Net.

Ich kann keinen Beispielcode finde eine 32bpp ARGB Farbbild zu nehmen und die Bitmap in eine TIFF mit dieser Bibliothek schreiben.

Hat jemand versucht, diese?

Hier ist mein Beispielcode. Es erzeugt eine Datei, aber es kann nicht durch Software eingesehen werden, daß ich habe.

EDIT: Der Code funktioniert jetzt, aber die Farben sind falsch

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

Danke

War es hilfreich?

Lösung

Bearbeiten Die neueste Version von LibTiff.Net enthält Beispiele für die Umwandlung eines System.Drawing.Bitmap auf 32-Bit oder 24-Bit Farbe LZW-TIFF-Bilder komprimiert werden.

Es gibt auch Proben für die Umwandlung eines TIFF-Bildes auf 32-Bit- oder 24-Bit System.Drawing.Bitmaps. / EDIT

Sie sollten auch "Grafik-Programmierung mit libTIFF überprüfen .net " Artikel in der Dokumentation. Es sollte Ihnen grundlegende Informationen geben über das Erstellen Farbe TIFF-Dateien.

Disclaimer: Ich bin einer der Maintainer der Bibliothek

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top