W różnych scenariuszach obrazy są kompresowane w celu zmniejszenia rozmiaru pliku. W tym celu różne aplikacje online lub offline umożliwiają zastosowanie kompresji obrazu. Jednak w niektórych przypadkach może być konieczne zaimplementowanie funkcji kompresji obrazu z poziomu aplikacji internetowych lub komputerowych. W takich przypadkach w tym artykule opisano, jak programowo kompresować obrazy, w tym PNG, JPEG i TIFF, przy użyciu języka Java.

Najlepsze API do kompresji obrazów Java — do pobrania za darmo

Aspose.Imaging for Java to potężny interfejs API, który umożliwia wykonywanie różnych operacji przetwarzania obrazu z poziomu aplikacji Java. Ponadto umożliwia bezproblemową kompresję obrazów PNG, JPEG i TIFF. Aby korzystać z API, możesz pobrać jego plik JAR lub zainstalować go w swoich aplikacjach opartych 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>

Kompresuj obrazy PNG w Javie

Format PNG obsługuje bezstratną kompresję, co oznacza, że kompresja obrazu PNG zmniejszy rozmiar pliku, ale nie jakość. W przypadku obrazów PNG Aspose.Imaging for Java pozwala ustawić poziomy kompresji od 0 do 9, gdzie 0 i 9 to odpowiednio minimalny i maksymalny poziom kompresji. Poniżej przedstawiono kroki kompresji obrazu PNG za pomocą Java.

Poniższy przykładowy kod pokazuje, jak skompresować obraz PNG przy użyciu języka Java.

// Załaduj obraz z pliku (lub strumienia)
Image image = Image.load("aspose_logo.png");

// Zapętlić możliwy zakres poziomów kompresji
for (int i = 0; i <= 9; i++) {
	
  // Utwórz instancję PngOptions dla każdego wynikowego PNG
	PngOptions options = new PngOptions();
	
  // Ustaw poziom kompresji
	options.setCompressionLevel(i);
	
  // Zapisz wynik na dysku (lub strumieniu)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Kompresja obrazu JPEG przy użyciu języka Java

W przypadku kompresji obrazu JPEG Aspose.Imaging for Java udostępnia następujące typy kompresji.

  • Linia bazowa
  • Progresywny
  • Bezstratny
  • JpegLs

Poniżej przedstawiono kroki, aby zastosować jeden z wyżej wymienionych typów kompresji do obrazów JPEG przy użyciu języka Java.

Poniższy przykładowy kod pokazuje, jak kompresować obrazy JPEG przy użyciu języka Java.

// Załaduj obraz
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Zastosuj kompresję
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Zapisz skompresowany obraz
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Kompresuj obrazy TIFF przy użyciu języka Java

Aspose.Imaging for Java zapewnia różne typy kompresji TIFF, w tym LZW, Packbits, CCIT Fax 3 i 4 itd. Dlatego możesz wybrać typ kompresji, który najlepiej odpowiada Twoim wymaganiom. Poniżej przedstawiono kroki przeprowadzania kompresji TIFF przy użyciu języka Java.

Poniższy przykładowy kod pokazuje, jak kompresować obrazy TIFF przy użyciu języka Java.

// Załaduj obraz za pośrednictwem lokalizacji ścieżki pliku lub strumienia
try (Image image = Image.load("sample.tiff"))
{
	// Utwórz instancję TiffOptions dla wynikowego obrazu
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Ustaw bity na próbkę, kompresję, tryb fotometryczny i paletę odcieni szarości
	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 do kompresji obrazów — uzyskaj bezpłatną licencję

Jeśli chcesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, możesz uzyskać bezpłatną tymczasową licencję.

Wniosek

Kompresja obrazu jest często wymagana w celu zmniejszenia rozmiaru obrazów. Dlatego w tym artykule opisano, jak programowo kompresować obrazy PNG, JPEG i TIFF przy użyciu języka Java. Ponadto możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu Java, korzystając z dokumentacji.

Zobacz też

Informacje: Firma Aspose niedawno opracowała nową aplikację internetową, która umożliwia przekształcenie zestawu obrazów w wideo. Być może zainteresuje Cię również inna usługa, której można użyć do kompresji filmów poprzez wyodrębnianie dźwięków z filmów.