Pregunta

Estoy utilizando Bit milagro LibTiff.Net.

No se puede encontrar ningún código de ejemplo para tomar una imagen en color ARGB 32 bpp y escribir el mapa de bits a un archivo TIFF utilizando esta biblioteca.

¿Alguien más ha intentado esto?

Aquí está mi código de ejemplo. Produce un archivo, pero no puede ser visto por cualquier software que tengo.

editar: Ahora, el código funciona, pero los colores están mal

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

Gracias

¿Fue útil?

Solución

Editar La última versión de LibTiff.Net contiene muestras para la conversión de un System.Drawing.Bitmap a 32 bits o 24-bit LZW color de las imágenes TIFF comprimido.

También hay muestras para la conversión de una imagen TIFF de a 32 bits o System.Drawing.Bitmaps de 24 bits. / EDIT

También puede que desee revisar "programación gráfica con libtiff .Net "artículo en la documentación. Se le debe dar información básica acerca de la creación archivos TIFF en color.

exención de responsabilidad: yo soy uno de los encargados del mantenimiento de la biblioteca

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top