In vari scenari, le immagini vengono compresse per ridurre le dimensioni del file. Per questo, diverse applicazioni online o offline consentono di applicare la compressione dell’immagine. Tuttavia, in alcuni casi, potrebbe essere necessario implementare la funzione di compressione dell’immagine dall’interno delle applicazioni Web o desktop. In questi casi, questo articolo illustra come comprimere le immagini inclusi PNG, JPEG e TIFF a livello di codice utilizzando Java.

API di compressione delle immagini Java

Aspose.Imaging for Java è una potente API che consente di eseguire varie operazioni di elaborazione delle immagini dall’interno delle applicazioni Java. Inoltre, ti consente di comprimere senza problemi immagini PNG, JPEG e TIFF. Per utilizzare l’API, puoi scaricare il suo JAR o installarlo all’interno delle tue applicazioni basate su Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging</artifactId>
    <version>20.12</version>
    <classifier>jdk16</classifier>
</dependency>

Comprimi immagini PNG in Java

Il formato PNG supporta una compressione senza perdita di dati, il che significa che la compressione di un’immagine PNG ridurrà le dimensioni del file ma non la qualità. Per le immagini PNG, Aspose.Imaging per Java consente di impostare i livelli di compressione da 0 a 9 dove 0 e 9 sono rispettivamente i livelli di compressione minimo e massimo. Di seguito sono riportati i passaggi per comprimere un’immagine PNG utilizzando Java.

L’esempio di codice seguente mostra come comprimere un’immagine PNG utilizzando Java.

// Carica un'immagine da file (o stream)
Image image = Image.load("aspose_logo.png");

// Loop su un possibile intervallo di livelli di compressione
for (int i = 0; i <= 9; i++) {
	
  // Crea un'istanza di PngOptions per ogni PNG risultante
	PngOptions options = new PngOptions();
	
  // Imposta il livello di compressione
	options.setCompressionLevel(i);
	
  // Salva il risultato su disco (o stream)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Comprimi le immagini JPEG usando Java

Per la compressione di immagini JPEG, Aspose.Imaging per Java fornisce i seguenti tipi di compressione.

  • Linea di base
  • Progressivo
  • Senza perdita
  • JPEG

Di seguito sono riportati i passaggi per applicare uno dei tipi di compressione sopra menzionati alle immagini JPEG utilizzando Java.

L’esempio di codice seguente mostra come comprimere le immagini JPEG utilizzando Java.

// Carica immagine
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Applicare la compressione
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Salva immagine compressa
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Comprimi le immagini TIFF usando Java

Aspose.Imaging per Java fornisce una varietà di tipi di compressione TIFF che includono LZW, Packbits, CCIT Fax 3 e 4 e così via. Pertanto, è possibile selezionare il tipo di compressione più adatto alle proprie esigenze. Di seguito sono riportati i passaggi per eseguire la compressione TIFF utilizzando Java.

L’esempio di codice seguente mostra come comprimere le immagini TIFF utilizzando Java.

// Carica un'immagine tramite il percorso del file o il flusso
try (Image image = Image.load("sample.tiff"))
{
	// Crea un'istanza di TiffOptions per l'immagine risultante
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Impostare BitsPerSample, Compressione, Modalità fotometrica e tavolozza in scala di grigi
	outputSettings.setBitsPerSample(new int[] { 4 });
	outputSettings.setCompression(TiffCompressions.Lzw);
	outputSettings.setPhotometric(TiffPhotometrics.Palette);
	outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
	image.save("SampleTiff_out.tiff", outputSettings);
}

Ottieni una licenza API gratuita

Nel caso in cui desideri provare l’API senza limitazioni di valutazione, puoi ottenere una licenza temporanea gratuita.

Conclusione

La compressione delle immagini è spesso necessaria per ridurre le dimensioni delle immagini. Pertanto, questo articolo ha spiegato come comprimere immagini PNG, JPEG e TIFF a livello di codice utilizzando Java. Inoltre, puoi esplorare di più sull’API di elaborazione delle immagini Java utilizzando documentazione.

Guarda anche

Info: Aspose ha recentemente sviluppato una nuova web app online che consente di trasformare un insieme di immagini in un video. Potresti anche essere interessato a un altro servizio che può essere utilizzato per comprimere i video estraendo i suoni dai video.