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.
- Interfejs API kompresji obrazu Java
- Kompresuj obrazy PNG w Javie
- Kompresuj obrazy JPEG w Javie
- Zastosuj kompresję do obrazów TIFF w Javie
- Uzyskaj bezpłatną licencję API
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.
- Najpierw załaduj obraz PNG, używając klasy Image.
- Utwórz instancję klasy PngOptions.
- Ustaw poziom kompresji metodą PngOptions.setCompressionLevel(int).
- Na koniec zapisz skompresowany obraz PNG za pomocą metody Image.save(String, PngOptions).
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.
- Najpierw załaduj obraz JPEG, używając klasy Image.
- Utwórz instancję klasy JpegOptions.
- Ustaw poziom kompresji za pomocą metody JpegOptions.setCompressionType(JpegCompressionMode).
- Na koniec zapisz skompresowany obraz JPEG przy użyciu metody Image.save(String, JpegOptions).
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.
- Najpierw załaduj obraz TIFF przy użyciu klasy Image.
- Utwórz instancję klasy TiffOptions.
- Ustaw poziom kompresji metodą TiffOptions.setCompression(TiffCompressions).
- Ustaw inne opcje, takie jak liczba bitów na próbkę, fotometria, paleta itp.
- Na koniec zapisz skompresowany obraz TIFF przy użyciu metody Image.save(String, TiffOptions).
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.