Manipolazione delle immagini TIFF

Aggiungere frame con diverse impostazioni

TIFF è un formato molto flessibile che consente di aggiungere frame diversi, con diverse dimensioni, compressione e altre impostazioni. Le API Aspose.PSD ti permettono di aggiungere qualsiasi frame TIFF di qualsiasi dimensione, il che aiuta a creare documenti complessi. Se c’è la necessità di regolare i frame durante il processo di aggiunta per renderli tutti uguali, eseguire i seguenti passaggi:

  • Creare un nuovo frame vuoto con le opzioni desiderate o copiare il frame di origine con le opzioni di output specificate utilizzando il metodo CreateFrameFrom.
  • Ridimensionare il frame / immagine di origine alle dimensioni desiderate utilizzando il metodo Resize.
  • Aggiungere i pixel del frame / immagine di origine al nuovo frame.
  • Aggiungere il nuovo frame all’immagine TIFF di output.

Esporta strati dell’immagine PSD in un file TIFF multipagina

A volte è necessario esportare gli strati dell’immagine PSD nel formato file TIFF multipagina. Questo articolo dimostrerà come possiamo eseguire questa operazione utilizzando l’API Aspose.PSD per Java. Per prima cosa, caricheremo l’immagine PSD dal disco. Poi itereremo sugli strati dell’immagine PSD e creeremo un TiffFrame dagli strati corrispondenti. Infine salveremo l’immagine TIFF risultante in un unico file su disco.

Configurazione di TiffOptions

I programmatori possono regolare diverse proprietà della classe Tiffoptions per ottenere i risultati desiderati. In questo documento, ci concentreremo su 4 proprietà principali che controllano gli attributi dell’immagine risultante.

Queste proprietà sono elencate di seguito.

  1.  TiffOptions.Photometric
  2. TiffOptions.Compression
  3. TiffOptions.BitsPerSample
  4. TiffOptions.Predictor

Ogni volta che iniziamo una struttura Tiffoptions vuota, ogni opzione viene impostata sul suo valore predefinito, ad esempio la compressione è impostata su Nessuna, BitsPerSample è impostato su 1 e Photometric su MinIsWhite. Salvando in questo formato l’immagine finale sarà in bianco e nero e questo è il comportamento atteso per tale combinazione di opzioni. Per ottenere i risultati a colori è necessario impostare tutte le proprietà menzionate sopra su valori che corrispondono allo spazio colore desiderato oppure è possibile inizializzare la struttura Tiffoptions con impostazioni predefinite come discusso successivamente in questo articolo. Di seguito è riportata una tabella che descrive i valori dei parametri attesi che è possibile impostare per ottenere i risultati desiderati. Si noti che è necessario impostare tutte e 4 le colonne tramite Tiffoptions per salvare qualsiasi immagine carica/creata nel formato file TIFF.

 TiffOptions.Photometric TiffOptions.Compression TiffOptions.BitsPerSample TiffOptions.Predictor
Palette LZW/Non compresso 1/4/8/16 (palette, modalità colore) solo un canale Nessuno
MinIsWhite/MinIsBlack LZW/Non compresso 1/4/8/16 (modalità scala di grigi) solo un canale Nessuno
Palette LZW/Non compresso 8 (palette, modalità colore) solo un canale Orizzontale (maggior compressione ottenuta per LZW con stessi pattern)
MinIsWhite/MinIsBlack LZW/Non compresso 8 (modalità scala di grigi) solo un canale Orizzontale (maggior compressione ottenuta per LZW con stessi pattern)
RGB LZW/Non compresso [8,8,8] (3 canali RGB) Nessuno/Orizzontale
RGB LZW/Non compresso [8,8,8,8] (3 canali RGB e può essere impostato ulteriormente un canale alfa attraverso TiffOptions.AlphaStorage) In realtà è supportato qualsiasi numero di canali aggiuntivi ma ogni canale deve avere una dimensione di 8 bit come [8,8,8,8,8,8] Nessuno/Orizzontale
Tutte e 4 le proprietà devono essere impostate tramite TiffOptions per salvare qualsiasi formato immagine nel formato file Tiff. Utilizzando diverse combinazioni, alcuni visualizzatori (incluso il Visualizzatore foto di Windows) potrebbero rifiutarsi di renderizzare l’immagine risultante a causa del supporto limitato offerto. In tal caso, si prega di scegliere un visualizzatore diverso per i test.

Impostazioni predefinite per la classe TiffOptions

Per facilitare gli utenti e evitare la configurazione errata dell’istanza Tiffoptions, l’API Aspose.PSD per Java ha esposto un altro costruttore che accetta un parametro di tipo TiffExpectedFormat. In base al valore selezionato dall’enumerazione TiffExpectedFormat, l’API configura automaticamente tutte le proprietà obbligatorie per l’istanza di Tiffoptions al fine di produrre i risultati desiderati. Prima di passare al codice di esempio, qui è elencato l’elenco dei campi di TiffExpectedFormat e i loro dettagli per una migliore comprensione dell’utilizzo.

  • TiffExpectedFormat.Default: L’impostazione del campo su Default agisce in modo simile al costruttore predefinito della classe Tiffoptions senza impostare alcuna compressione e BitsPerPixel impostato su 1 per produrre un risultato in bianco e nero. Si consiglia di utilizzare questo campo quando altre proprietà specifiche del formato devono essere impostate manualmente in base ai risultati desiderati.
  • TiffExpectedFormat.TiffCcitRle: Specifico per la codifica RLE durante il salvataggio del risultato nel formato file TIFF a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffCcittFax3: Specifico per la codifica CCITT Fax3 durante il salvataggio del risultato nel formato file TIFF a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffCcittFax4: Specifico per la codifica CCITT Fax4 durante il salvataggio del risultato nel formato file TIFF a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffDeflateBW: Specifico per la compressione Deflate durante il salvataggio del risultato nel formato file TIFF a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffDeflateRGB: Specifico per la compressione Deflate durante il salvataggio del risultato nel formato file TIFF RGB (colore).
  • TiffExpectedFormat.TiffJpegRGB: Specifico per la compressione Jpeg durante il salvataggio del risultato nel formato file TIFF RGB (colore).
  • TiffExpectedFormat.TiffJpegYCBCR: Specifico per la compressione Deflate durante il salvataggio del risultato nel formato file TIFF YCBCR (colore).
  • TiffExpectedFormat.TiffLzwBW: Specifico per la compressione LZW durante il salvataggio del risultato nel formato file TIFF a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffLzwRGB: Specifico per la compressione LZW durante il salvataggio del risultato nel formato file TIFF RGB (colore).
  • TiffExpectedFormat.TiffLzwRGBA: Specifico per la compressione LZW durante il salvataggio del risultato nel formato file TIFF RGBA (colore con trasparenza).
  • TiffExpectedFormat.TiffNoCompressionBW: Specifico per il formato TIFF non compresso durante il salvataggio del risultato a 1 BitsPerPixel (bianco e nero).
  • TiffExpectedFormat.TiffNoCompressionRGB: Specifico per il formato TIFF non compresso durante il salvataggio del risultato in RGB (colore).
  • TiffExpectedFormat.TiffNoCompressionRGBA: Specifico per il formato TIFF non compresso durante il salvataggio del risultato in RGBA (colore con trasparenza).

Il seguente frammento di codice illustra l’utilizzo dei campi TiffExpectedFormat durante la creazione di un’istanza della classe Tiffoptions.

Supporto per la compressione Deflate e Adobe Deflate

Il formato file TIFF (Tagged Image File Format) supporta vari tipi di compressione, mentre il tipo di compressione è memorizzato come un tag (un valore intero) nel file. Uno di questi metodi di compressione è l’Adobe Deflate (precedentemente noto come Deflate). L’API Aspose.PSD per Java supporta questo metodo di compressione per l’esportazione e la creazione di immagini TIFF.

Salvataggio dell’immagine in TIFF con compressione Deflate

Convertire le immagini caricate in TIFF con compressione Deflate/Adobe Deflate è facile come segue.

Creazione di un’immagine Tiff con compressione Adobe Deflate

Di seguito è mostrato un esempio che illustra l’utilizzo dell’API Aspose.PSD per Java per creare un’immagine da zero utilizzando il metodo di compressione Adobe Deflate.

Compressione delle immagini TIFF

L’API Aspose.PSD per Java può essere utilizzata per convertire immagini PSD nel formato immagine TIFF e persino cambiare la compressione dell’immagine TIFF risultante. L’API può anche essere utilizzata per memorizzare diverse immagini come frame in un’immagine TIFF per scopi di archiviazione riducendo le dimensioni dei dati delle immagini alla loro dimensione più piccola. La compressione dell’immagine in ogni caso dovrebbe essere eseguita riducendo le dimensioni dei dati di origine indipendentemente dall’algoritmo di compressione utilizzato. Per ottenere il miglior rapporto di compressione, possiamo utilizzare spazi colore indicizzati. Il frammento di codice fornito di seguito esegue la migliore compressione utilizzando solo 16 colori indicizzati e l’algoritmo di compressione LZW tuttavia i colori di origine sono leggermente dithered.