V různých scénářích jsou obrázky komprimovány, aby se zmenšila jejich velikost souboru. K tomu vám různé online nebo offline aplikace umožňují použít kompresi obrazu. V určitých případech však může být nutné implementovat funkci komprese obrazu z webových nebo desktopových aplikací. Pro takové případy tento článek popisuje, jak komprimovat obrázky včetně PNG, JPEG a TIFF programově pomocí Java.
- Java Image Compression API
- Komprimujte obrázky PNG v Javě
- Komprimujte obrázky JPEG v Javě
- Použijte kompresi na obrázky TIFF v Javě
- Získejte bezplatnou licenci API
Nejlepší Java Image Compression API – ke stažení zdarma
Aspose.Imaging for Java je výkonné API, které umožňuje provádět různé operace zpracování obrazu z aplikací Java. Navíc umožňuje bezproblémovou kompresi obrázků PNG, JPEG a TIFF. Abyste mohli API používat, můžete si stáhnout jeho JAR nebo jej nainstalovat do svých aplikací založených na 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>
Komprimujte obrázky PNG v Javě
Formát PNG podporuje bezeztrátovou kompresi, což znamená, že komprimací obrázku PNG se sníží velikost souboru, ale ne kvalita. Pro obrázky PNG vám Aspose.Imaging for Java umožňuje nastavit úrovně komprese od 0 do 9, kde 0 a 9 jsou minimální a maximální úrovně komprese. Následují kroky ke kompresi obrázku PNG pomocí Java.
- Nejprve načtěte obrázek PNG pomocí třídy Image.
- Vytvořte instanci třídy PngOptions.
- Nastavte úroveň komprese pomocí metody PngOptions.setCompressionLevel(int).
- Nakonec uložte komprimovaný obrázek PNG pomocí metody Image.save(String, PngOptions).
Následující ukázka kódu ukazuje, jak komprimovat obrázek PNG pomocí Java.
// Načíst obrázek ze souboru (nebo streamu)
Image image = Image.load("aspose_logo.png");
// Smyčka přes možný rozsah úrovně komprese
for (int i = 0; i <= 9; i++) {
// Vytvořte instanci PngOptions pro každý výsledný PNG
PngOptions options = new PngOptions();
// Nastavte úroveň komprese
options.setCompressionLevel(i);
// Uložit výsledek na disk (nebo stream)
image.save("CompressingFiles_out" + i + ".png", options);
}
Komprese obrázků JPEG pomocí Java
Pro kompresi obrázků JPEG poskytuje Aspose.Imaging for Java následující typy komprese.
- Základní linie
- Progresivní
- Bezztrátový
- JpegLs
Následují kroky pro použití jednoho z výše uvedených typů komprese na obrázky JPEG pomocí Java.
- Nejprve načtěte obrázek JPEG pomocí třídy Image.
- Vytvořte instanci třídy JpegOptions.
- Nastavte úroveň komprese pomocí metody JpegOptions.setCompressionType(JpegCompressionMode).
- Nakonec uložte komprimovaný obrázek JPEG pomocí metody Image.save(String, JpegOptions).
Následující ukázka kódu ukazuje, jak komprimovat obrázky JPEG pomocí Java.
// Načíst obrázek
Image original = Image.load("Input.jpeg");
try
{
JpegOptions jpegOptions = new JpegOptions()
{{
// Použijte kompresi
setCompressionType(JpegCompressionMode.Progressive);
}};
// Uložit komprimovaný obrázek
original.save("result.jpg", jpegOptions);
}
finally
{
original.dispose();
}
Komprimujte obrázky TIFF pomocí Java
Aspose.Imaging for Java poskytuje různé typy komprese TIFF, které zahrnují LZW, Packbits, CCIT Fax 3 & 4 atd. Můžete si tedy vybrat typ komprese, který nejlépe vyhovuje vašim požadavkům. Následují kroky k provedení komprese TIFF pomocí Java.
- Nejprve načtěte obrázek TIFF pomocí třídy Image.
- Vytvořte instanci třídy TiffOptions.
- Nastavte úroveň komprese pomocí metody TiffOptions.setCompression(TiffCompressions).
- Nastavte další možnosti, jako jsou bity na vzorek, fotometrické, paleta atd.
- Nakonec uložte komprimovaný obrázek TIFF pomocí metody Image.save(String, TiffOptions).
Následující ukázka kódu ukazuje, jak komprimovat obrázky TIFF pomocí Java.
// Načtěte obrázek přes umístění cesty k souboru nebo stream
try (Image image = Image.load("sample.tiff"))
{
// Vytvořte instanci TiffOptions pro výsledný obrázek
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
// Nastavte BitsPerSample, Compression, Photometric mode a grayscale paletu
outputSettings.setBitsPerSample(new int[] { 4 });
outputSettings.setCompression(TiffCompressions.Lzw);
outputSettings.setPhotometric(TiffPhotometrics.Palette);
outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
image.save("SampleTiff_out.tiff", outputSettings);
}
Java API pro kompresi obrázků - Získejte bezplatnou licenci
V případě, že chcete API vyzkoušet bez omezení hodnocení, můžete získat bezplatnou dočasnou licenci.
Závěr
Komprese obrazu je často vyžadována, aby se zmenšila velikost obrázků. Proto se tento článek zabýval tím, jak komprimovat obrázky PNG, JPEG a TIFF programově pomocí Java. Kromě toho můžete prozkoumat více o rozhraní API pro zpracování obrazu Java pomocí dokumentace.
Viz také
Informace: Aspose nedávno vyvinul novou online webovou aplikaci, která vám umožňuje přeměnit sadu obrázků na video. Také by vás mohla zajímat další služba, kterou lze použít ke kompresi videí extrahováním zvuků z videí.