2009-10-10 67 views

Respuesta

12

Puede usar este ejemplo de código (C#). devuelve un valor que indica el tipo de compresión:

1: sin compresión
2: CCITT Grupo 3
3: compatible-Facsímil CCITT Grupo 3
4: CCITT Grupo 4 (T.6)
5 : LZW

public static int GetCompressionType(Image image) 
{ 
    int compressionTagIndex = Array.IndexOf(image.PropertyIdList, 0x103); 
    PropertyItem compressionTag = image.PropertyItems[compressionTagIndex]; 
    return BitConverter.ToInt16(compressionTag.Value, 0); 
} 
0

ACTUALIZACIÓN:

SO, he descargado la biblioteca libtiff desde el enlace que he mencionado antes, y por lo que he visto, puede hacer lo siguiente: (no probado)

int isTIFF_T6(const char* filename) 
{ 
TIFF* tif= TIFFOpen(filename,"r"); 
TIFFDirectory *td = &tif->tif_dir; 
if(td->td_compression == COMPRESSION_CCITTFAX4) return 1; 
return 0; 
} 

ANTERIOR: This page tiene una gran cantidad de información acerca de este formato y enlaces a un cierto código en C:

He aquí un extracto:

El siguiente documento cubre T.4, T.6 y JBIG:

"Revisión de las normas para la electrónica de imágenes para sistemas de facsímil" en Journal of Electronic Imaging, Vol . . 1, No. 1, pp 5-21, enero de 1992.

El código fuente se puede obtener como parte de un TIFF toolkit - TIFF imagen técnicas de compresión para binarios imágenes incluyen T.4 CCITT y T. 6:

ftp://ftp.sgi.com/graphics/tiff/tiff-v3.4beta035-tar.gz Contacto: [email protected]

Leer más: http://www.faqs.org/faqs/compression-faq/part1/section-16.html#ixzz0TYLGKnHI

3

puede ejecutar identify -verbose del paquete ImageMagick en la imagen. Busque "Compresión: Group4" en la salida.

7

Puede comprobar estos enlaces

La etiqueta 259 (hexadecimal 0x0103) almacenan la información sobre el método de compresión.

--- compresión Tag = 259 (103) Tipo = palabra N = 1 defecto = 1.

1 = Sin compresión, pero el paquete de datos en bytes tan estrechamente como sea posible, sin bits no utilizados, excepto al final de una fila. Los bytes se almacenan como una matriz de bytes, por BitsPerSample < = 8, palabra si BitsPerSample> 8 y < = 16, y DWORD si BitsPerSample> 16 y < = 32. El orden de los bytes de datos> 8 bits debe ser coherente con lo especificado en el encabezado del archivo TIFF (bytes 0 y 1). Las filas deben comenzar en los límites de bytes.

2 = CCITT Group 3 1-Dimensional Modificado Huffman longitud de ejecución de codificación. Ver ALGRTHMS.txt BitsPerSample debe ser 1, ya que este tipo de compresión se define sólo para imágenes en dos niveles (como imágenes de fax ...)

3 = Facsímil compatible CCITT Grupo 3, tal y como se especifica en "Normalización del facsímil del Grupo 3 para el documento transmisión, "Recomendación T.4, Volumen VII, Fascículo VII.3, Equipo terminal y protocolos para servicios telemáticos, Comité consultivo internacional de telegrafía y teléfono (CCITT), Ginebra, 1985, páginas 16 a 31. Cada tira debe comenzar en un límite de bytes. (Pero recuerde que una imagen puede ser una tira única ). Las filas que no son la primera fila de una tira son no es necesario que comiencen en un límite de bytes. Los datos se almacenan como bytes, no palabras - no se permite la inversión de bytes. Consulte el campo Group3Options para las opciones del Grupo 3, como la codificación 1D frente a 2D.

4 = compatible-Facsímil CCITT Grupo 4, exactamente como se especifica en "Facsímil esquemas de codificación y Codificación de funciones de control para Grupo 4 aparato facsímil," Recomendación T.6, Volumen VII, Fascículo VII.3, Equipo Terminal y Protocolos para Servicios Telemáticos, El Comité Consultivo Internacional de Telégrafos y Teléfonos (CCITT), Ginebra, 1985, páginas 40 a 48. Cada tira debe comenzar en un límite de bytes. No es necesario que las filas que no son la primera fila de una tira comiencen en un límite de bytes. Los datos son almacenados como bytes, no como palabras. Vea el campo Group4Options para opciones del Grupo 4.

5 = Compresión LZW, para escala de grises, color mapeado e imágenes a todo color.

Cuestiones relacionadas