Come posso sapere se un'immagine TIFF è in formato CCITT T.6 (Gruppo 4)?
-
20-09-2019 - |
Domanda
Come faccio a sapere se un'immagine TIFF è nel formato di T.6 CCITT (Gruppo 4)?
Soluzione
È possibile utilizzare questo (C #) esempio di codice. Esso restituisce un valore che indica il tipo di compressione:
1: nessuna compressione
2: CCITT Gruppo 3
3: compatibile con Fax CCITT Gruppo 3
4: CCITT Gruppo 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);
}
Altri suggerimenti
È possibile controllare questi collegamenti
Il tag 259 (esadecimale 0x0103) memorizzare le informazioni sul metodo di compressione.
--- Compressione Tag = 259 (103) Type = parola N = 1 Default = 1.
1 = No compressione, ma i dati del pacchetto in byte più strettamente possibile, senza bit non utilizzati tranne alla fine di una riga. I byte sono memorizzati come un array di byte per BitsPerSample <= 8, parola se BitsPerSample> 8 e <= 16, e DWORD se BitsPerSample> 16 e <= 32. L'ordinamento dei byte di dati> 8 bit deve essere coerente con quanto specificato nel file di intestazione TIFF (byte 0 e 1). Le righe sono necessari per iniziare un byte.
2 = CCITT Gruppo 3 1-Dimensional Modified codifica Huffman tiratura. Vedere ALGRTHMS.txt BitsPerSample deve essere 1, dal momento che questo tipo di compressione è definito solo per immagini a due colori (come le immagini fax ...)
3 = Fax-compatibile CCITT Gruppo 3, esattamente come specificato in "La standardizzazione del Gruppo 3 fac-simile apparato per il documento la trasmissione," raccomandazione T.4, Volume VII, Fascicle VII.3, Terminal Equipment e protocolli per servizi telematici, The Internazionale telegrafico e Comitato consultivo Telefono (CCITT), Ginevra 1985, pagine 16 a 31. Ogni striscia must iniziare su un limite di byte. (A meno di ricordare che un'immagine può essere un singola striscia.) righe non la prima fila di una striscia sono non richiesto per iniziare su un limite di byte. I dati vengono memorizzati come byte, non con le parole - byte inversione non è permesso. vedere la Group3Options campo per il gruppo 3 opzioni come 1D vs codifica 2D.
4 = Fax-compatibile CCITT Gruppo 4 , esattamente come specificato in "facsimile schemi di codifica e codifica Funzioni di controllo per il gruppo 4 Apparecchio di facsimile," raccomandazione T.6, Volume VII, Fascicle VII.3, apparecchiature terminali e protocolli per servizi telematici, The Telegraph International e Comitato consultivo Telefono (CCITT), Ginevra 1985, pagine 40 attraverso 48. Ciascuna striscia must iniziare su un limite di byte. Righe non la prima riga di un striscia non sono necessari per iniziare un byte confine. I dati sono memorizzato come byte, non parole. Vedere il campo Group4Options per Gruppo 4 opzioni.
5 = LZW compressione, per la scala di grigi, colore mappato, e immagini a colori.
È possibile eseguire identify -verbose
dal ImageMagick Suite sull'immagine. Cercare "Compressione: Group4". Nell'output
UPDATE:
Così, ho scaricato la libreria libtiff
dal link che ho citato prima, e da quello che ho visto, è possibile effettuare le seguenti operazioni: (non testato)
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;
}
PRECEDENTE: Questa pagina ha un sacco di informazioni su questo formato e link ad un certo codice in C:
Ecco un estratto:
Il seguente documento copre T.4, T.6 e JBIG:
"Rassegna di norme per elettronica l'imaging per i sistemi facsimile" in Journal of Electronic Imaging, Vol. 1, No. 1, pp. 5-21, gennaio 1992.
Il codice sorgente può essere ottenuto come parte di TIFF toolkit - immagine TIFF tecniche di compressione per binario immagini comprendono CCITT T.4 e T.6:
ftp://ftp.sgi.com/graphics /tiff/tiff-v3.4beta035-tar.gz Contatto: sam@engr.sgi.com
Per saperne di più: http: // www. faqs.org/faqs/compression-faq/part1/section-16.html#ixzz0TYLGKnHI