GifImage

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.DataStreamSupporter, com.aspose.imaging.Image, com.aspose.imaging.RasterImage, com.aspose.imaging.RasterCachedImage, com.aspose.imaging.RasterCachedMultipageImage

All Implemented Interfaces: com.aspose.imaging.IMultipageImageExt, com.aspose.fileformats.core.interfaces.IInterlaced

public final class GifImage extends RasterCachedMultipageImage implements IMultipageImageExt, IInterlaced

L’API per il file immagine Graphical Interchange Format (GIF) fornisce agli sviluppatori strumenti versatili per l’elaborazione di immagini raster compresse e GIF animate. Offre funzionalità come la gestione dei metadati XMP, l’impostazione della tavolozza dei colori, il controllo del colore di sfondo e trasparente, le impostazioni di opacità, il ridimensionamento, il ritaglio, l’applicazione di filtri, le correzioni gamma, la regolazione del contrasto, la trasformazione in scala di grigi e la conversione in altri formati. Questa API consente una manipolazione e un miglioramento senza soluzione di continuità delle immagini GIF per una vasta gamma di applicazioni.

Costruttori

CostruttoreDescrizione
GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette)Inizializza un nuovo oggetto GifImage con i parametri specificati per il primo fotogramma e la tavolozza globale.
GifImage(GifFrameBlock firstFrame)Creare immagini GIF diventa semplice con il costruttore GifImage.
GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette, boolean isPaletteSorted, byte paletteColorResolution, byte paletteBackgroundColorIndex, byte aspectRatio, boolean hasTrailer)Inizia senza sforzo con il costruttore GifImage.

Metodi

MetodoDescrizione
getFileFormat()Recupera il formato file senza sforzo con questa proprietà.
hasTrailer()Gestisci la presenza di un trailer nei tuoi file GIF con questa proprietà.
setTrailer(boolean value)Gestisci la presenza di un trailer nei tuoi file GIF con questa proprietà.
isPaletteSorted()Controlla l’ordinamento della palette nelle tue immagini GIF utilizzando questa proprietà.
setPaletteSorted(boolean value)Controlla l’ordinamento della palette nelle tue immagini GIF utilizzando questa proprietà.
getLoopsCount()Recupera il conteggio dei loop senza sforzo con questa proprietà.
setLoopsCount(int value)Recupera il conteggio dei loop senza sforzo con questa proprietà.
getPaletteColorResolutionBits()Gestisci la risoluzione dei colori della palette delle tue immagini GIF con questa proprietà.
setPaletteColorResolutionBits(byte value)Gestisci la risoluzione dei colori della palette delle tue immagini GIF con questa proprietà.
getPageCount()Recupera il numero totale di pagine contenute nell’immagine con questa proprietà semplice.
getPages()Accedi alle pagine all’interno dell’immagine tramite questa proprietà comoda, consentendo una navigazione fluida e la manipolazione delle singole pagine secondo necessità.
getBlocks()Accedi ai blocchi GIF senza problemi con questa proprietà, facilitando il recupero e la manipolazione delle strutture dati sottostanti dell’immagine.
isInterlaced()Determina se l’immagine è interlacciata, influenzando la sua visualizzazione durante il caricamento.
getOriginalOptions()Recupera le opzioni basate sulle impostazioni originali del file, fondamentali per mantenere fedeltà e coerenza nell’elaborazione e manipolazione delle immagini.
addPage(RasterImage page)Incorpora una nuova pagina senza problemi nell’immagine esistente, migliorandone il contenuto ed espandendone la portata.
getActiveFrame()Gestisci e manipola i fotogrammi con questa proprietà, consentendo una navigazione fluida e la modifica del fotogramma attivo all’interno dell’immagine GIF.
setActiveFrame(GifFrameBlock value)Gestisci e manipola i fotogrammi con questa proprietà, consentendo una navigazione fluida e la modifica del fotogramma attivo all’interno dell’immagine GIF.
getBackgroundColor()Gestisci il colore di sfondo dell’immagine GIF con questa proprietà.
setBackgroundColor(Color value)Gestisci il colore di sfondo dell’immagine GIF con questa proprietà.
getBackgroundColorIndex()Controlla l’indice del colore di sfondo dell’immagine GIF utilizzando questa proprietà.
setBackgroundColorIndex(byte value)Controlla l’indice del colore di sfondo dell’immagine GIF utilizzando questa proprietà.
getPixelAspectRatio()Gestisci il rapporto d’aspetto dei pixel dell’immagine GIF con questa proprietà.
setPixelAspectRatio(byte value)Gestisci il rapporto d’aspetto dei pixel dell’immagine GIF con questa proprietà.
hasTransparentColor()Determina se il fotogramma attivo dell’immagine GIF include un colore trasparente.
getTransparentColor()Recupera il colore trasparente del fotogramma attivo nell’immagine GIF.
setTransparentColor(boolean value)Determina se il fotogramma attivo dell’immagine GIF include un colore trasparente.
hasBackgroundColor()Questa proprietà determina se l’immagine GIF contiene un colore di sfondo.
getImageOpacity()Recupera l’opacità del fotogramma attivo all’interno dell’immagine, fornendo un’indicazione del suo livello di trasparenza.
resize(int newWidth, int newHeight, int resizeType)Ridimensiona questa istanza di Image.
resize(int newWidth, int newHeight, ImageResizeSettings settings)Ridimensiona questa istanza di Image.
resizeFullFrame(int newWidth, int newHeight, int resizeType)Ridimensionamento dell’immagine tenendo conto di tutti i fotogrammi per ogni pagina in un GIF, prevenendo così l’apparizione di potenziali artefatti.
rotateFlip(int rotateFlipType)Esegui rotazione, capovolgimento o entrambi sul fotogramma attivo esclusivamente.
dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)Applica il dithering all’immagine corrente.
crop(Rectangle rectangle)Ritaglia l’immagine utilizzando un’area rettangolare specificata.
adjustGamma(float gamma)Migliora la qualità dell’immagine applicando la correzione gamma.
filter(Rectangle rectangle, FilterOptionsBase options)Applica un filtro specifico all’area designata dell’immagine, migliorandone la qualità visiva o modificandone l’aspetto secondo le necessità.
setFrameTime(int time)Regola la durata di ogni fotogramma in millisecondi, garantendo una temporizzazione coerente lungo l’intera sequenza di immagini.
adjustBrightness(int brightness)Regola la luminosità dell’immagine in base al parametro brightness specificato.
adjustContrast(float contrast)Regola il contrasto dell’immagine, aumentando o riducendo la differenza di luminosità tra i pixel.
adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)La correzione gamma di un’immagine applica una regolazione non lineare ai valori dei pixel, aumentando o riducendo la luminosità in base ai coefficienti specificati per i canali rosso, verde e blu.
grayscale()La trasformazione di un’immagine nella sua rappresentazione in scala di grigi converte l’immagine a colori in una versione in scala di grigi rimuovendo le informazioni di colore mantenendo la luminanza.
binarizeFixed(byte threshold)La binarizzazione di un’immagine con una soglia predefinita converte un’immagine in scala di grigi o a colori in un’immagine binaria, dove ogni pixel è classificato come nero o bianco in base al fatto che il suo valore di intensità superi una soglia specificata.
binarizeOtsu()La binarizzazione di un’immagine con sogliatura Otsu è un metodo utilizzato per determinare automaticamente il valore di soglia ottimale per convertire un’immagine in scala di grigi in un’immagine binaria.
binarizeBradley(double brightnessDifference)La binarizzazione di un’immagine usando l’algoritmo di sogliatura adattiva di Bradley con sogliatura a immagine integrale è un metodo per convertire un’immagine in scala di grigi in un’immagine binaria.
orderBlocks()L’ordinamento dei blocchi GIF secondo la specifica GIF garantisce una corretta disposizione dei GIF e la conformità allo standard.
clearBlocks()La cancellazione di tutti i blocchi GIF rimuove tutti i dati esistenti memorizzati nell’immagine.
insertBlock(int index, IGifBlock block)L’inserimento di un nuovo blocco GIF consente di aggiungere dati personalizzati in una posizione specifica all’interno dell’immagine.
addBlock(IGifBlock block)L’aggiunta di un nuovo blocco GIF permette di includere dati aggiuntivi nell’immagine.
removeBlock(IGifBlock block)La rimozione di un blocco GIF elimina dati specifici dall’immagine, offrendo la possibilità di pulire o modificare la struttura dell’immagine.
resizeProportional(int newWidth, int newHeight, int resizeType)Il ridimensionamento proporzionale mantiene le proporzioni dell’immagine durante la modifica delle sue dimensioni, garantendo che l’immagine non appaia allungata o distorta.
rotate(float angle, boolean resizeProportionally, Color backgroundColor)Questo metodo ruota l’immagine attorno al suo punto centrale.

Example: This example shows how to create a GIF image and save it to a file.

String dir = "c:\\temp\\";

// Crea un blocco GIF Frame di 100x100 px.
com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock firstBlock = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);
try {
    // Riempire l'intero blocco di rosso.
    com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(firstBlock);
    com.aspose.imaging.brushes.SolidBrush brush = new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getRed());
    gr.fillRectangle(brush, firstBlock.getBounds());

    com.aspose.imaging.fileformats.gif.GifImage gifImage = new com.aspose.imaging.fileformats.gif.GifImage(firstBlock);
    try {
        gifImage.save(dir + "output.gif");
    } finally {
        gifImage.dispose();
    }
} finally {
    firstBlock.dispose();
}

Example: Create multipage GIF image using single page raster images.

static void main(String[] args)
{
    // Carica i fotogrammi
    RasterImage[] frames = loadFrames("Animation frames");

    // Crea un'immagine GIF usando il primo fotogramma
    try (GifImage image = new GifImage(new GifFrameBlock(frames[0])))
    {
        // Aggiungi fotogrammi all'immagine GIF usando il metodo AddPage
        for (int index = 1; index < frames.length; index++)
        {
            image.addPage(frames[index]);
        }

        // Salva l'immagine GIF
        image.save("Multipage.gif");
    }

    // rilascia le risorse
    for (RasterImage frame : frames)
    {
        frame.close();
    }
}

private static RasterImage[] loadFrames(String directory)
{
    LinkedList<RasterImage> list = new LinkedList<RasterImage>();
    String[] fileList = new File(directory).list();
    if (fileList != null)
    {
        for (String filePath : fileList)
        {
            list.add((RasterImage) Image.load(filePath));
        }
    }
                
    return list.toArray(new RasterImage[0]);
}

Example: Export of part of animation from GIF image based on time interval.

try (Image image = Image.load("Animation.gif"))
{
    GifOptions options = new GifOptions();
    options.setFullFrame(true);
    final MultiPageOptions multiPageOptions = new MultiPageOptions();
    multiPageOptions.setMode(MultiPageMode.TimeInterval);
    multiPageOptions.setTimeInterval(new TimeInterval(0, 400));
    options.setMultiPageOptions(multiPageOptions);

    image.save("PartOfAnimation.gif", options);
}

GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette)

public GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette)

Inizializza un nuovo oggetto GifImage con i parametri specificati per il primo fotogramma e la palette globale. Inizia a gestire le immagini GIF rapidamente, garantendo una rappresentazione accurata con impostazioni personalizzabili per risultati ottimali.

Parameters:

ParametroTipoDescrizione
firstFrameGifFrameBlockIl primo fotogramma con cui inizializzare l’immagine GIF.
globalPaletteIColorPaletteLa palette globale da utilizzare. Nota che se sia firstFrame sia globalPalette sono null, allora viene usata la palette globale predefinita.

GifImage(GifFrameBlock firstFrame)

public GifImage(GifFrameBlock firstFrame)

Creare immagini GIF diventa facile con il costruttore GifImage. Con il solo parametro firstFrame, si accede a un mondo di comunicazione visiva dinamica.

Parameters:

ParametroTipoDescrizione
firstFrameGifFrameBlockIl primo fotogramma con cui inizializzare l’immagine GIF.

GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette, boolean isPaletteSorted, byte paletteColorResolution, byte paletteBackgroundColorIndex, byte aspectRatio, boolean hasTrailer)

public GifImage(GifFrameBlock firstFrame, IColorPalette globalPalette, boolean isPaletteSorted, byte paletteColorResolution, byte paletteBackgroundColorIndex, byte aspectRatio, boolean hasTrailer)

Inizia senza sforzo con il costruttore GifImage. Con questo metodo semplice, puoi immergerti nella creazione di GIF animate con facilità. Basta fornire firstFrame, globalPalette, paletteColorResolution, aspectRatio e altri parametri, e sarai pronto a dare vita ai tuoi contenuti visivi.

Parameters:

ParametroTipoDescrizione
firstFrameGifFrameBlockIl primo fotogramma con cui inizializzare l’immagine GIF.
globalPaletteIColorPaletteLa palette globale da utilizzare. Nota che se sia firstFrame sia globalPalette sono null, allora viene usata la palette globale predefinita.
isPaletteSortedbooleanSe impostato su true la palette è ordinata. Nota che il parametro viene usato quando globalPalette non è nullo.
paletteColorResolutionbyteLa risoluzione di colore della palette. Nota che il parametro viene usato quando globalPalette non è nullo.
paletteBackgroundColorIndexbyteL’indice del colore di sfondo della palette.
aspectRatiobyteIl rapporto d’aspetto.
hasTrailerbooleanSe impostato su true l’immagine GIF ha un trailer, altrimenti non viene scritto alcun trailer alla fine dello stream.

getFileFormat()

public long getFileFormat()

Recupera il formato del file senza sforzo con questa proprietà. È la tua fonte di riferimento per identificare il formato dei tuoi file. Integrata perfettamente nel tuo flusso di lavoro, fornisce informazioni vitali senza alcun problema.

Returns: long

hasTrailer()

public boolean hasTrailer()

Gestisci la presenza di un trailer nei tuoi file GIF con questa proprietà. Che tu debba verificare se un trailer esiste o impostarne la presenza, questa proprietà semplifica il processo. Mantieni i tuoi file GIF strutturati e conformi con questa funzionalità intuitiva.

Returns: boolean - true se il GIF ha trailer; altrimenti, false.

setTrailer(boolean value)

public void setTrailer(boolean value)

Gestisci la presenza di un trailer nei tuoi file GIF con questa proprietà. Che tu debba verificare se un trailer esiste o impostarne la presenza, questa proprietà semplifica il processo. Mantieni i tuoi file GIF strutturati e conformi con questa funzionalità intuitiva.

Parameters:

ParametroTipoDescrizione
valorebooleantrue se il GIF ha trailer; altrimenti, false.

isPaletteSorted()

public boolean isPaletteSorted()

Controlla l’ordinamento della palette nelle tue immagini GIF usando questa proprietà. Che tu debba verificare se la palette è ordinata o impostare il comportamento di ordinamento, questa proprietà offre un modo semplice per gestire l’organizzazione della palette nei tuoi file GIF.

Returns: boolean - true se la palette è ordinata; altrimenti, false.

setPaletteSorted(boolean value)

public void setPaletteSorted(boolean value)

Controlla l’ordinamento della palette nelle tue immagini GIF usando questa proprietà. Che tu debba verificare se la palette è ordinata o impostare il comportamento di ordinamento, questa proprietà offre un modo semplice per gestire l’organizzazione della palette nei tuoi file GIF.

Parameters:

ParametroTipoDescrizione
valorebooleantrue se la palette è ordinata; altrimenti, false.

getLoopsCount()

public int getLoopsCount()

Recupera il conteggio dei loop senza sforzo con questa proprietà. Se la tua immagine GIF include informazioni sul loop, questa proprietà ti fornisce un accesso rapido al conteggio dei loop, consentendoti di gestire senza problemi il comportamento di ripetizione nei tuoi file GIF.

Returns: int - Il conteggio dei loop o 1 (valore predefinito)

setLoopsCount(int value)

public void setLoopsCount(int value)

Recupera il conteggio dei loop senza sforzo con questa proprietà. Se la tua immagine GIF include informazioni sul loop, questa proprietà ti fornisce un accesso rapido al conteggio dei loop, consentendoti di gestire senza problemi il comportamento di ripetizione nei tuoi file GIF.

Parameters:

ParametroTipoDescrizione
valoreintIl conteggio dei loop o 1 (valore predefinito)

getPaletteColorResolutionBits()

public byte getPaletteColorResolutionBits()

Gestisci la risoluzione di colore della palette delle tue immagini GIF con questa proprietà. Regola il numero di bit usati per rappresentare i colori nella palette, fornendo un controllo preciso sulla profondità di colore e sulla qualità dell’immagine.

Returns: byte - I bit della risoluzione di colore della palette.

setPaletteColorResolutionBits(byte value)

public void setPaletteColorResolutionBits(byte value)

Gestisci la risoluzione di colore della palette delle tue immagini GIF con questa proprietà. Regola il numero di bit usati per rappresentare i colori nella palette, fornendo un controllo preciso sulla profondità di colore e sulla qualità dell’immagine.

Parameters:

ParametroTipoDescrizione
valorebyteI bit della risoluzione di colore della palette.

getPageCount()

public int getPageCount()

Recupera il numero totale di pagine contenute nell’immagine con questa proprietà semplice. Ideale per valutare rapidamente l’estensione del contenuto dell’immagine.

Returns: int - il conteggio delle pagine.

getPages()

public Image[] getPages()

Accedi alle pagine all’interno dell’immagine tramite questa proprietà comoda, consentendo una navigazione fluida e la manipolazione delle singole pagine secondo necessità.

Returns: com.aspose.imaging.Image[] - le pagine.

getBlocks()

public IGifBlock[] getBlocks()

Accedi ai blocchi GIF senza problemi con questa proprietà, facilitando il recupero e la manipolazione delle strutture dati sottostanti dell’immagine.

Returns: com.aspose.imaging.fileformats.gif.IGifBlock[] - i blocchi GIF.

isInterlaced()

public boolean isInterlaced()

Determina se l’immagine è interlacciata, influenzando la sua visualizzazione durante il caricamento. Questa proprietà offre una visione del comportamento di rendering dell’immagine, essenziale per ottimizzare le strategie di caricamento e migliorare l’esperienza di visualizzazione complessiva.

Returns: boolean - true se questa istanza di immagine è interlacciata; altrimenti, false.

getOriginalOptions()

public ImageOptionsBase getOriginalOptions()

Recupera le opzioni basate sulle impostazioni originali del file, fondamentali per mantenere fedeltà e coerenza nell’elaborazione e manipolazione delle immagini. Questo metodo consente un’integrazione fluida dei parametri specifici del file nelle operazioni successive, garantendo una resa accurata e il rispetto delle caratteristiche intrinseche dell’immagine. Può essere utile per mantenere inalterata la profondità di colore e altri parametri dell’immagine originale. Ad esempio, se carichiamo un’immagine PNG in bianco‑nero a 1 bit per pixel e poi la salviamo usando il metodo DataStreamSupporter.save(String), verrà prodotta un’immagine PNG in output a 8 bit per pixel. Per evitarlo e salvare l’immagine PNG a 1 bit per pixel, utilizza questo metodo per ottenere le opzioni di salvataggio corrispondenti e passale al metodo Image.save(String, ImageOptionsBase) come secondo parametro.

Returns: ImageOptionsBase - The options based on the original file settings.

addPage(RasterImage page)

public void addPage(RasterImage page)

Incorpora una nuova pagina senza soluzione di continuità nell’immagine esistente, migliorandone il contenuto e ampliandone la portata. Questo metodo arricchisce le collezioni di immagini con contenuti aggiuntivi, favorendo creatività e flessibilità nella gestione e composizione delle immagini.

Parameters:

ParametroTipoDescrizione
pageRasterImageLa pagina da aggiungere.

Example: Create multipage GIF image using single page raster images.

static void main(String[] args)
{
    // Carica i fotogrammi
    RasterImage[] frames = loadFrames("Animation frames");

    // Crea un'immagine GIF usando il primo fotogramma
    try (GifImage image = new GifImage(new GifFrameBlock(frames[0])))
    {
        // Aggiungi fotogrammi all'immagine GIF usando il metodo AddPage
        for (int index = 1; index < frames.length; index++)
        {
            image.addPage(frames[index]);
        }

        // Salva l'immagine GIF
        image.save("Multipage.gif");
    }

    // rilascia le risorse
    for (RasterImage frame : frames)
    {
        frame.close();
    }
}

private static RasterImage[] loadFrames(String directory)
{
    LinkedList<RasterImage> list = new LinkedList<RasterImage>();
    String[] fileList = new File(directory).list();
    if (fileList != null)
    {
        for (String filePath : fileList)
        {
            list.add((RasterImage) Image.load(filePath));
        }
    }
                
    return list.toArray(new RasterImage[0]);
}

getActiveFrame()

public GifFrameBlock getActiveFrame()

Gestisci e manipola i fotogrammi con questa proprietà, consentendo una navigazione fluida e la modifica del fotogramma attivo all’interno dell’immagine GIF.

Returns: GifFrameBlock - the active frame.

Example: The following example shows how to remove all blocks from a GIF image.

com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock firstBlock = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);
com.aspose.imaging.fileformats.gif.GifImage gifImage = new com.aspose.imaging.fileformats.gif.GifImage(firstBlock);
try {
    if (gifImage.getActiveFrame() != null) {
        System.out.println("Active frame size: " + gifImage.getActiveFrame().getSize());
    } else {
        System.out.println("Active frame is not set");
    }

    System.out.println("Clear all the blocks");
    gifImage.clearBlocks();

    if (gifImage.getActiveFrame() != null) {
        System.out.println("Active frame size: " + gifImage.getActiveFrame().getSize());
    } else {
        System.out.println("Active frame is not set");
    }
} finally {
    firstBlock.dispose();
    gifImage.dispose();
}

// L'output appare così:
// Dimensione del fotogramma attivo: { Width = 100, Height = 100}
// Cancella tutti i blocchi
// Il fotogramma attivo non è impostato

setActiveFrame(GifFrameBlock value)

public void setActiveFrame(GifFrameBlock value)

Gestisci e manipola i fotogrammi con questa proprietà, consentendo una navigazione fluida e la modifica del fotogramma attivo all’interno dell’immagine GIF.

Parameters:

ParametroTipoDescrizione
valueGifFrameBlockil fotogramma attivo.

getBackgroundColor()

public Color getBackgroundColor()

Gestisci il colore di sfondo dell’immagine GIF con questa proprietà. Puoi impostare o recuperare il colore di sfondo per garantire coerenza e migliorare l’appeal visivo.

Returns: Color - the background color.

setBackgroundColor(Color value)

public void setBackgroundColor(Color value)

Gestisci il colore di sfondo dell’immagine GIF con questa proprietà. Puoi impostare o recuperare il colore di sfondo per garantire coerenza e migliorare l’appeal visivo.

Parameters:

ParametroTipoDescrizione
valueColoril colore di sfondo.

getBackgroundColorIndex()

public byte getBackgroundColorIndex()

Controlla l’indice del colore di sfondo dell’immagine GIF usando questa proprietà. Imposta o recupera l’indice per mantenere la coerenza o ottenere gli effetti visivi desiderati.

Returns: byte - l’indice del colore di sfondo.

setBackgroundColorIndex(byte value)

public void setBackgroundColorIndex(byte value)

Controlla l’indice del colore di sfondo dell’immagine GIF usando questa proprietà. Imposta o recupera l’indice per mantenere la coerenza o ottenere gli effetti visivi desiderati.

Parameters:

ParametroTipoDescrizione
valorebytel’indice del colore di sfondo.

getPixelAspectRatio()

public byte getPixelAspectRatio()

Gestisci il rapporto d’aspetto dei pixel dell’immagine GIF con questa proprietà. Imposta o recupera il rapporto d’aspetto per garantire una resa accurata e mantenere la fedeltà visiva.

Returns: byte - il rapporto d’aspetto dei pixel.

setPixelAspectRatio(byte value)

public void setPixelAspectRatio(byte value)

Gestisci il rapporto d’aspetto dei pixel dell’immagine GIF con questa proprietà. Imposta o recupera il rapporto d’aspetto per garantire una resa accurata e mantenere la fedeltà visiva.

Parameters:

ParametroTipoDescrizione
valorebyteil rapporto d’aspetto dei pixel.

hasTransparentColor()

public boolean hasTransparentColor()

Determina se il fotogramma attivo dell’immagine GIF include un colore trasparente. Questa proprietà offre un modo comodo per verificare la trasparenza all’interno dell’immagine.

Returns: boolean - un valore che indica se il fotogramma attivo ha un colore trasparente.

getTransparentColor()

public Color getTransparentColor()

Recupera il colore trasparente del fotogramma attivo nell’immagine GIF. Questa proprietà consente di accedere al colore specifico designato come trasparente nel fotogramma attualmente attivo.

Returns: Color - active frame transparent color.

setTransparentColor(boolean value)

public void setTransparentColor(boolean value)

Determina se il fotogramma attivo dell’immagine GIF include un colore trasparente. Questa proprietà offre un modo comodo per verificare la trasparenza all’interno dell’immagine.

Parameters:

ParametroTipoDescrizione
valorebooleanun valore che indica se il fotogramma attivo ha un colore trasparente.

hasBackgroundColor()

public boolean hasBackgroundColor()

Questa proprietà determina se l’immagine GIF contiene un colore di sfondo. Se vero, indica che l’immagine include un colore di sfondo.

Returns: boolean - un valore che indica se l’immagine ha un colore di sfondo.

getImageOpacity()

public float getImageOpacity()

Recupera l’opacità del fotogramma attivo all’interno dell’immagine, fornendo informazioni sul suo livello di trasparenza. Questa proprietà è particolarmente utile per comprendere il grado di trasparenza o opacità del fotogramma attivo nell’immagine.

Il valore di opacità compreso tra 0.0 (completamente trasparente) e 1.0 (completamente opaco).

Returns: float - opacità di questa immagine (fotogramma attivo).

resize(int newWidth, int newHeight, int resizeType)

public void resize(int newWidth, int newHeight, int resizeType)

Ridimensiona questa istanza di Image.

Parameters:

ParametroTipoDescrizione
newWidthintLa nuova larghezza.
newHeightintLa nuova altezza.
resizeTypeintIl tipo di ridimensionamento.

Example: This example loads a GIF image and resizes it using various resizing methods.

String dir = "c:\\temp\\";

com.aspose.imaging.fileformats.gif.GifImage image = (com.aspose.imaging.fileformats.gif.GifImage) com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    // Ingrandisci di 2 volte usando il ricampionamento Nearest Neighbour.
    image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
    image.save(dir + "upsample.nearestneighbour.gif");
} finally {
    image.dispose();
}

image = (com.aspose.imaging.fileformats.gif.GifImage) com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    // Riduci di 2 volte usando il ricampionamento Nearest Neighbour.
    image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.NearestNeighbourResample);
    image.save(dir + "downsample.nearestneighbour.gif");
} finally {
    image.dispose();
}

image = (com.aspose.imaging.fileformats.gif.GifImage) com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    // Ingrandisci di 2 volte usando il ricampionamento Bilineare.
    image.resize(image.getWidth() * 2, image.getHeight() * 2, com.aspose.imaging.ResizeType.BilinearResample);
    image.save(dir + "upsample.bilinear.gif");
} finally {
    image.dispose();
}

image = (com.aspose.imaging.fileformats.gif.GifImage) com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    // Riduci di 2 volte usando il ricampionamento Bilineare.
    image.resize(image.getWidth() / 2, image.getHeight() / 2, com.aspose.imaging.ResizeType.BilinearResample);
    image.save(dir + "downsample.bilinear.gif");
} finally {
    image.dispose();
}

resize(int newWidth, int newHeight, ImageResizeSettings settings)

public void resize(int newWidth, int newHeight, ImageResizeSettings settings)

Ridimensiona questa istanza di Image.

Parameters:

ParametroTipoDescrizione
newWidthintLa nuova larghezza.
newHeightintLa nuova altezza.
settingsImageResizeSettingsLe impostazioni.

Example: This example loads a GIF image and resizes it using various resizing settings.

String dir = "c:\\temp\\";

com.aspose.imaging.ImageResizeSettings resizeSettings = new com.aspose.imaging.ImageResizeSettings();

// L'algoritmo adattivo basato su funzione razionale ponderata e mescolata e interpolazione lanczos3.
resizeSettings.setMode(com.aspose.imaging.ResizeType.AdaptiveResample);

// Il piccolo filtro rettangolare
resizeSettings.setFilterType(com.aspose.imaging.ImageFilterType.SmallRectangular);

// Il numero di colori nella tavolozza.
resizeSettings.setEntriesCount(256);

// La quantizzazione del colore non è utilizzata
resizeSettings.setColorQuantizationMethod(com.aspose.imaging.ColorQuantizationMethod.None);

// Il metodo Euclideo
resizeSettings.setColorCompareMethod(com.aspose.imaging.ColorCompareMethod.Euclidian);

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Riduci di 2 volte usando il ricampionamento adattivo.
    gifImage.resize(image.getWidth() / 2, image.getHeight() / 2, resizeSettings);

    // Salva in PNG
    gifImage.save(dir + "downsample.adaptive.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

resizeFullFrame(int newWidth, int newHeight, int resizeType)

public void resizeFullFrame(int newWidth, int newHeight, int resizeType)

Ridimensionamento dell’immagine tenendo conto di tutti i fotogrammi per ogni pagina in una GIF, evitando così la comparsa di potenziali artefatti. Questo metodo è essenziale per mantenere l’integrità e la qualità dell’immagine, soprattutto quando si lavora con GIF animate o sequenze di fotogrammi.

Parameters:

ParametroTipoDescrizione
newWidthintLa nuova larghezza.
newHeightintLa nuova altezza.
resizeTypeintIl tipo di ridimensionamento.

rotateFlip(int rotateFlipType)

public void rotateFlip(int rotateFlipType)

Esegui rotazione, capovolgimento o entrambi sul fotogramma attivo in esclusiva. Questa operazione applica trasformazioni solo al fotogramma attualmente attivo dell’immagine, preservando l’integrità degli altri fotogrammi nella sequenza.

Parameters:

ParametroTipoDescrizione
rotateFlipTypeintIl tipo di rotazione e capovolgimento.

Example: This example loads a GIF image, rotates it by 90 degrees clockwise and optionally flips the image horizontally and(or) vertically.


// La classe helper utilizzata nell'esempio principale di seguito.
class Utils {
    // Il metodo helper per ottenere una rappresentazione stringa del formato file.
    public String getRotateFlipTypeString(int rotateFlipType) {
        if (rotateFlipType == com.aspose.imaging.RotateFlipType.RotateNoneFlipNone) {
            return "RotateNoneFlipNone";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate90FlipNone) {
            return "Rotate90FlipNone";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate180FlipNone) {
            return "Rotate180FlipNone";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate270FlipNone) {
            return "Rotate270FlipNone";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.RotateNoneFlipX) {
            return "RotateNoneFlipX";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate90FlipX) {
            return "Rotate90FlipX";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate180FlipX) {
            return "Rotate180FlipX";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate270FlipX) {
            return "Rotate270FlipX";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.RotateNoneFlipY) {
            return "RotateNoneFlipY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate90FlipY) {
            return "Rotate90FlipY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate180FlipY) {
            return "Rotate180FlipY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate270FlipY) {
            return "Rotate270FlipY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.RotateNoneFlipXY) {
            return "RotateNoneFlipXY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate90FlipXY) {
            return "Rotate90FlipXY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate180FlipXY) {
            return "Rotate180FlipXY";
        } else if (rotateFlipType == com.aspose.imaging.RotateFlipType.Rotate270FlipXY) {
            return "Rotate270FlipXY";
        } else {
            return "UNDEFINED";
        }
    }
}

// Ecco l'esempio principale
Utils utils = new Utils();

String dir = "c:\\temp\\";

int[] rotateFlipTypes = new int[]
        {
                com.aspose.imaging.RotateFlipType.Rotate90FlipNone,
                com.aspose.imaging.RotateFlipType.Rotate90FlipX,
                com.aspose.imaging.RotateFlipType.Rotate90FlipXY,
                com.aspose.imaging.RotateFlipType.Rotate90FlipY,
        };

for (int rotateFlipType : rotateFlipTypes) {
    // Ruota, capovolgi e salva nel file di output.
    com.aspose.imaging.fileformats.gif.GifImage image = (com.aspose.imaging.fileformats.gif.GifImage) com.aspose.imaging.Image.load(dir + "sample.gif");
    try {
        image.rotateFlip(rotateFlipType);
        image.save(dir + "sample." + utils.getRotateFlipTypeString(rotateFlipType) + ".png", new com.aspose.imaging.imageoptions.PngOptions());
    } finally {
        image.dispose();
    }
}

dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)

public void dither(int ditheringMethod, int bitsCount, IColorPalette customPalette)

Applica il dithering all’immagine corrente. Questo processo migliora la qualità dell’immagine riducendo le bande di colore e migliorando le transizioni cromatiche, risultando in un aspetto più uniforme.

Parameters:

ParametroTipoDescrizione
ditheringMethodintIl metodo di dithering.
bitsCountintIl conteggio finale dei bit per il dithering.
customPaletteIColorPaletteLa palette personalizzata per il dithering.

Example: The following example loads a GIF image and performs threshold and floyd dithering using different palette depth.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Esegui il dithering a soglia usando una palette di colori a 4 bit che contiene 16 colori.
    // Più bit sono specificati, maggiore è la qualità e più grande è la dimensione dell'immagine di output.
    // Nota che al momento sono supportate solo palette a 1 bit, 4 bit e 8 bit.
    gifImage.dither(com.aspose.imaging.DitheringMethod.ThresholdDithering, 4, null);

    gifImage.save(dir + "sample.ThresholdDithering4.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Esegui il dithering Floyd usando una palette di colori a 1 bit che contiene solo 2 colori - nero e bianco.
    // Più bit sono specificati, maggiore è la qualità e più grande è la dimensione dell'immagine di output.
    // Nota che al momento sono supportate solo palette a 1 bit, 4 bit e 8 bit.
    gifImage.dither(com.aspose.imaging.DitheringMethod.FloydSteinbergDithering, 1, null);

    gifImage.save(dir + "sample.FloydSteinbergDithering1.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

crop(Rectangle rectangle)

public void crop(Rectangle rectangle)

Ritaglia l’immagine usando un’area rettangolare specificata. Questa operazione rimuove la parte esterna dell’immagine, lasciando solo la regione selezionata definita dal rettangolo.

Parameters:

ParametroTipoDescrizione
rectangleRectangleIl rettangolo.

Example: The following example crops a GIF image. Il seguente esempio ritaglia un’immagine GIF. L’area di ritaglio viene specificata tramite Aspose.Imaging.Rectangle.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Ritaglia l'immagine. L'area di ritaglio è la zona rettangolare centrale dell'immagine.
    com.aspose.imaging.Rectangle area = new com.aspose.imaging.Rectangle(
            gifImage.getWidth() / 4,
            gifImage.getHeight() / 4,
            gifImage.getWidth() / 2,
            gifImage.getHeight() / 2);
    gifImage.crop(area);

    // Salva l'immagine ritagliata in PNG
    gifImage.save(dir + "sample.Crop.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

adjustGamma(float gamma)

public void adjustGamma(float gamma)

Migliora la qualità dell’immagine applicando la correzione gamma. Questo metodo regola il gamma colore dell’immagine per ottenere una chiarezza visiva ottimale. Modifica il valore gamma di ogni pixel, risultando in una resa cromatica migliorata e un aspetto complessivo dell’immagine più nitido.

Parameters:

ParametroTipoDescrizione
gammafloatCoefficiente gamma per i canali rosso, verde e blu

Example: The following example performs gamma-correction of a GIF image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Imposta il coefficiente gamma per i canali rosso, verde e blu.
    gifImage.adjustGamma(2.5f);
    gifImage.save(dir + "sample.AdjustGamma.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

filter(Rectangle rectangle, FilterOptionsBase options)

public void filter(Rectangle rectangle, FilterOptionsBase options)

Applica un filtro specifico all’area designata dell’immagine, migliorandone la qualità visiva o alterandone l’aspetto secondo le necessità. Questo metodo elabora selettivamente i pixel all’interno del rettangolo definito, consentendo regolazioni mirate mantenendo l’integrità dei dati dell’immagine circostante.

Parameters:

ParametroTipoDescrizione
rectangleRectangleIl rettangolo.
optionsFilterOptionsBaseLe opzioni.

Example: The following example applies various types of filters to a GIF image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro mediano con una dimensione del rettangolo di 5 all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.MedianFilterOptions(5));
    gifImage.save(dir + "sample.MedianFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro di levigatura bilaterale con una dimensione del kernel di 5 all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.BilateralSmoothingFilterOptions(5));
    gifImage.save(dir + "sample.BilateralSmoothingFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro di sfocatura gaussiana con un raggio di 5 e un valore sigma di 4.0 all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.GaussianBlurFilterOptions(5, 4.0));
    gifImage.save(dir + "sample.GaussianBlurFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro Gauss-Wiener con un raggio di 5 e un valore di levigatura di 4.0 all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.GaussWienerFilterOptions(5, 4.0));
    gifImage.save(dir + "sample.GaussWienerFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro motion Wiener con una lunghezza di 5, un valore di levigatura di 4.0 e un angolo di 90.0 gradi all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.MotionWienerFilterOptions(10, 1.0, 90.0));
    gifImage.save(dir + "sample.MotionWienerFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Applica un filtro di nitidezza con una dimensione del kernel di 5 e un valore sigma di 4.0 all'intera immagine.
    gifImage.filter(gifImage.getBounds(), new com.aspose.imaging.imagefilters.filteroptions.SharpenFilterOptions(5, 4.0));
    gifImage.save(dir + "sample.SharpenFilter.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

setFrameTime(int time)

public void setFrameTime(int time)

Regola la durata di ogni fotogramma in millisecondi, garantendo una temporizzazione coerente lungo tutta la sequenza di immagini. Questo metodo imposta uniformemente il tempo di visualizzazione per ogni fotogramma, consentendo un controllo preciso sulla velocità dell’animazione. Modificando questo valore si resetterà il ritardo per tutti i fotogrammi.

Parameters:

ParametroTipoDescrizione
tempointIl tempo di durata del fotogramma in millisecondi.

adjustBrightness(int brightness)

public void adjustBrightness(int brightness)

Regola la luminosità dell’immagine in base al parametro brightness specificato. Questo metodo modifica uniformemente la luminosità dell’intera immagine, aumentando o riducendo la luminanza complessiva per ottenere l’effetto desiderato.

Parameters:

ParametroTipoDescrizione
brightnessintValore di luminosità.

Example: The following example performs brightness correction of a GIF image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Imposta il valore di luminosità. I valori accettati per la luminosità sono nell'intervallo [-255, 255].
    gifImage.adjustBrightness(50);
    gifImage.save(dir + "sample.AdjustBrightness.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

adjustContrast(float contrast)

public void adjustContrast(float contrast)

Regola il contrasto dell’immagine, aumentando o riducendo la differenza di luminosità tra i pixel. Questo metodo modifica l’intera gamma tonale dell’immagine, rendendo le aree più scure più scure e le aree più luminose più luminose per migliorare la chiarezza visiva e i dettagli.

Parameters:

ParametroTipoDescrizione
contrastfloatValore di contrasto (nell’intervallo [-100; 100])

Example: The following example performs contrast correction of a GIF image.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Imposta il valore di contrasto. I valori accettati per il contrasto sono nell'intervallo [-100f, 100f].
    gifImage.adjustContrast(50f);
    gifImage.save(dir + "sample.AdjustContrast.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)

public void adjustGamma(float gammaRed, float gammaGreen, float gammaBlue)

La correzione gamma di un’immagine applica una regolazione non lineare ai valori dei pixel, aumentando o riducendo la luminosità in base ai coefficienti specificati per i canali rosso, verde e blu. Questo metodo aiuta a perfezionare il bilanciamento dei colori e la luminanza dell’immagine, migliorandone l’aspetto complessivo e la qualità visiva.

Parameters:

ParametroTipoDescrizione
gammaRedfloatGamma per il coefficiente del canale rosso
gammaGreenfloatGamma per il coefficiente del canale verde
gammaBluefloatCoefficiente gamma per il canale blu

Example: The following example performs gamma-correction of a GIF image applying different coefficients for color components.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Imposta i coefficienti gamma individuali per i canali rosso, verde e blu.
    gifImage.adjustGamma(1.5f, 2.5f, 3.5f);
    gifImage.save(dir + "sample.AdjustGamma.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

grayscale()

public void grayscale()

La trasformazione di un’immagine nella sua rappresentazione in scala di grigi converte l’immagine a colori in una versione in scala di grigi rimuovendo le informazioni di colore mantenendo la luminanza. Questo processo semplifica l’immagine in tonalità di grigio, rendendola adatta a varie applicazioni come la stampa, l’elaborazione di documenti e l’analisi in scala di grigi.

Example: The following example transforms a colored GIF image to its grayscale representation. Il seguente esempio trasforma un’immagine GIF a colori nella sua rappresentazione in scala di grigi. Le immagini in scala di grigi sono composte esclusivamente da tonalità di grigio e contengono solo informazioni di intensità.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    gifImage.grayscale();
    gifImage.save(dir + "sample.Grayscale.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

binarizeFixed(byte threshold)

public void binarizeFixed(byte threshold)

La binarizzazione di un’immagine con una soglia predefinita converte un’immagine in scala di grigi o a colori in un’immagine binaria, dove ogni pixel è classificato come nero o bianco in base al fatto che il suo valore di intensità superi una soglia specificata.

Parameters:

ParametroTipoDescrizione
thresholdbyteValore di soglia. Se il valore grigio corrispondente di un pixel è maggiore della soglia, verrà assegnato il valore 255, altrimenti 0.

Example: The following example binarizes a GIF image with the predefined threshold. Il seguente esempio binarizza un’immagine GIF con la soglia predefinita. Le immagini binarie contengono solo 2 colori - nero e bianco.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage djvuImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Binarizza l'immagine con un valore di soglia di 127.
    // Se il valore di grigio corrispondente di un pixel è maggiore di 127, gli verrà assegnato un valore di 255, altrimenti 0.
    djvuImage.binarizeFixed((byte) 127);
    djvuImage.save(dir + "sample.BinarizeFixed.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

binarizeOtsu()

public void binarizeOtsu()

La binarizzazione di un’immagine con sogliatura Otsu è un metodo utilizzato per determinare automaticamente il valore di soglia ottimale per convertire un’immagine in scala di grigi in un’immagine binaria. L’algoritmo di sogliatura Otsu calcola la soglia che minimizza la varianza intra-classe delle intensità dei pixel nelle due classi risultanti (sfondo e primo piano). Questa tecnica è particolarmente utile quando il valore di soglia ottimale è sconosciuto e deve essere determinato in modo adattivo in base all’istogramma dell’immagine.

Example: The following example binarizes a GIF image with Otsu thresholding. Il seguente esempio binarizza un’immagine GIF con sogliatura Otsu. Le immagini binarie contengono solo 2 colori - nero e bianco.

String dir = "c:\\temp\\";

com.aspose.imaging.Image image = com.aspose.imaging.Image.load(dir + "sample.gif");
try {
    com.aspose.imaging.fileformats.gif.GifImage gifImage = (com.aspose.imaging.fileformats.gif.GifImage) image;

    // Binarizza l'immagine con la sogliatura di Otsu.
    gifImage.binarizeOtsu();
    gifImage.save(dir + "sample.BinarizeOtsu.png", new com.aspose.imaging.imageoptions.PngOptions());
} finally {
    image.dispose();
}

binarizeBradley(double brightnessDifference)

public void binarizeBradley(double brightnessDifference)

La binarizzazione di un’immagine utilizzando l’algoritmo di sogliatura adattiva di Bradley con sogliatura a immagine integrale è un metodo per convertire un’immagine in scala di grigi in un’immagine binaria. Questo algoritmo calcola una soglia locale per ogni pixel basata sull’intensità media dei pixel circostanti all’interno di una finestra specificata. Regolando adattivamente la soglia in base alle intensità locali dei pixel, il metodo di Bradley è efficace nel gestire le variazioni di illuminazione e contrasto nell’immagine.

Parameters:

ParametroTipoDescrizione
brightnessDifferencedoubleLa differenza di luminosità tra il pixel e la media di una finestra s x s di pixel centrata su questo pixel.

orderBlocks()

public void orderBlocks()

L’ordinamento dei blocchi GIF secondo la specifica GIF garantisce una corretta disposizione dei GIF e la conformità allo standard. Questo processo prevede la disposizione dei blocchi nella sequenza corretta come definita dalla specifica. Inoltre, può comportare la rimozione di alcune istanze di GifGraphicsControlBlock non necessarie per il layout finale. Attenendosi alla specifica GIF, l’immagine risultante sarà strutturata correttamente e compatibile con le applicazioni di visualizzazione GIF.

clearBlocks()

public void clearBlocks()

La cancellazione di tutti i blocchi GIF rimuove tutti i dati esistenti memorizzati nell’immagine. Questa operazione resetta efficacemente l’immagine a uno stato vuoto, rimuovendo tutti i blocchi precedentemente aggiunti. Usa questo metodo quando è necessario ricominciare da zero con una base pulita per creare o modificare un’immagine GIF.

Example: The following example shows how to remove all blocks from a GIF image.

com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock firstBlock = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);
com.aspose.imaging.fileformats.gif.GifImage gifImage = new com.aspose.imaging.fileformats.gif.GifImage(firstBlock);
try {
    if (gifImage.getActiveFrame() != null) {
        System.out.println("Active frame size: " + gifImage.getActiveFrame().getSize());
    } else {
        System.out.println("Active frame is not set");
    }

    System.out.println("Clear all the blocks");
    gifImage.clearBlocks();

    if (gifImage.getActiveFrame() != null) {
        System.out.println("Active frame size: " + gifImage.getActiveFrame().getSize());
    } else {
        System.out.println("Active frame is not set");
    }
} finally {
    firstBlock.dispose();
    gifImage.dispose();
}

// L'output appare così:
// Dimensione del fotogramma attivo: { Width = 100, Height = 100}
// Cancella tutti i blocchi
// Il fotogramma attivo non è impostato

insertBlock(int index, IGifBlock block)

public void insertBlock(int index, IGifBlock block)

L’inserimento di un nuovo blocco GIF consente di aggiungere dati personalizzati in una posizione specifica all’interno dell’immagine. Questo metodo permette di posizionare blocchi personalizzati nella posizione desiderata nell’immagine GIF, offrendo flessibilità nell’organizzazione e nella strutturazione dei dati dell’immagine.

Parameters:

ParametroTipoDescrizione
indexintL’elemento indicizzato da zero, in cui il blocco sarà inserito.
blockIGifBlockIl blocco GIF da aggiungere.

addBlock(IGifBlock block)

public void addBlock(IGifBlock block)

L’aggiunta di un nuovo blocco GIF consente di includere dati aggiuntivi all’interno dell’immagine. Questo metodo permette di aggiungere blocchi personalizzati all’immagine GIF, che possono contenere vari tipi di informazioni.

Parameters:

ParametroTipoDescrizione
blockIGifBlockIl blocco GIF da aggiungere.

Example: The following example shows how to compose an animated GIF image from individual GIF blocks.

String dir = "c:\\temp\\";

// Crea un'immagine GIF 100 x 100 px.
// Il primo blocco è completamente nero per impostazione predefinita.
com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock firstBlock = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);
com.aspose.imaging.fileformats.gif.GifImage gifImage = new com.aspose.imaging.fileformats.gif.GifImage(firstBlock);
try {
    // Il primo cerchio è rosso
    com.aspose.imaging.brushes.SolidBrush brush1 = new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getRed());

    // Il secondo cerchio è nero
    com.aspose.imaging.brushes.SolidBrush brush2 = new com.aspose.imaging.brushes.SolidBrush(com.aspose.imaging.Color.getBlack());

    // Aumenta gradualmente l'angolo della forma ad arco rossa.
    for (int angle = 10; angle <= 360; angle += 10) {
        com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock block = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);

        com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(block);
        gr.fillPie(brush1, block.getBounds(), 0, angle);

        gifImage.addBlock(block);
    }

    // Aumenta gradualmente l'angolo dell'arco nero e cancella l'arco rosso.
    for (int angle = 10; angle <= 360; angle += 10) {
        com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock block = new com.aspose.imaging.fileformats.gif.blocks.GifFrameBlock(100, 100);

        com.aspose.imaging.Graphics gr = new com.aspose.imaging.Graphics(block);
        gr.fillPie(brush2, block.getBounds(), 0, angle);
        gr.fillPie(brush1, block.getBounds(), angle, 360 - angle);

        gifImage.addBlock(block);
    }

    gifImage.save(dir + "animated_radar.gif");
} finally {
    firstBlock.dispose();
    gifImage.dispose();
}

removeBlock(IGifBlock block)

public void removeBlock(IGifBlock block)

La rimozione di un blocco GIF elimina dati specifici dall’immagine, offrendo la possibilità di pulire o modificare la struttura dell’immagine. Questo metodo consente di rimuovere blocchi indesiderati o non necessari, ottimizzando l’immagine GIF per una memorizzazione efficiente. Utilizza questa funzionalità per eliminare informazioni obsolete dall’immagine preservandone l’integrità e la qualità.

Parameters:

ParametroTipoDescrizione
blockIGifBlock

Nota: non dimenticare di Dispose il blocco se non lo aggiungerai a un’altra GifImage. |

resizeProportional(int newWidth, int newHeight, int resizeType)

public void resizeProportional(int newWidth, int newHeight, int resizeType)

Il ridimensionamento proporzionale mantiene il rapporto d’aspetto dell’immagine mentre ne regola le dimensioni, garantendo che l’immagine non appaia allungata o distorta. Questo metodo ridimensiona l’immagine proporzionalmente, scalando sia la larghezza sia l’altezza con lo stesso fattore. Il ridimensionamento proporzionale ridimensionerà ogni fotogramma secondo il rapporto di newWidth/width e newHeight/height.

Parameters:

ParametroTipoDescrizione
newWidthintLa nuova larghezza.
newHeightintLa nuova altezza.
resizeTypeintIl tipo di ridimensionamento.

rotate(float angle, boolean resizeProportionally, Color backgroundColor)

public void rotate(float angle, boolean resizeProportionally, Color backgroundColor)

Questo metodo ruota l’immagine attorno al suo punto centrale. Specificando l’angolo di rotazione, è possibile ruotare l’immagine in senso orario o antiorario per ottenere l’orientamento desiderato. Questa rotazione aiuta a regolare la presentazione o l’allineamento dell’immagine senza distorcerne il contenuto.

Parameters:

ParametroTipoDescrizione
anglefloatL’angolo di rotazione in gradi. I valori positivi ruoteranno in senso orario.
resizeProportionallybooleanSe impostato su true la dimensione dell’immagine verrà modificata in base alle proiezioni del rettangolo ruotato (punti d’angolo); altrimenti le dimensioni rimarranno inalterate e solo `` image contents are rotated.
backgroundColorColorColore dello sfondo.