Jak zmniejszyć rozmiar obrazu w Javie

Jak zmniejszyć rozmiar obrazu w Javie

Ten reduktor rozmiaru obrazu [biblioteka] oferuje techniki kompresji na poziomie korporacyjnym do kompresji obrazów. Możesz dostosować wywołania API do wymagań biznesowych, korzystając z różnych typów i poziomów kompresji dostępnych w tej bogato wyposażonej bibliotece. Dlatego skonfigurujmy tę bibliotekę w naszym projekcie Java i zbudujmy kompresor obrazu online. W tym samouczku nauczymy się programowo zmniejszać rozmiar obrazu w Javie.

Omówione zostaną następujące punkty:

Reduktor rozmiaru obrazu — instalacja biblioteki Java

Instalacja dowolnej biblioteki ma znaczenie, jeśli chodzi o szybkie tworzenie aplikacji. W każdym razie możesz pobrać plik JAR lub zainstalować tę bibliotekę, korzystając z następujących konfiguracji Mavena.

<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>

Programowo zmniejsz rozmiar obrazu PNG w Javie

Ta biblioteka oferuje ogromną liczbę metod, które można znaleźć tutaj. Ponadto możesz programowo ustawić kolor, typ kompresji i wiele innych atrybutów obrazów.

Aby skompresować obrazy PNG, wykonaj następujące kroki i fragment kodu:

  1. Załaduj źródłowy plik obrazu PNG, wywołując metodę Image.load.
  2. Zapętlaj możliwy zakres CompressionLevel.
  3. Utwórz instancję klasy PngOptions dla każdego wynikowego pliku PNG, aby uzyskać dostęp do opcji PNG.
  4. Ustaw poziom kompresji. Natomiast poziom kompresji obrazu png mieści się w zakresie 0-9, gdzie 9 to maksymalna kompresja, a 0 to tryb przechowywania.
  5. Zapisz wyniki na dysku wywołując metodę save.

Skopiuj i wklej następujący kod do głównego pliku, aby zmniejszyć obraz PNG w Javie:

// Załaduj źródłowy plik obrazu PNG, wywołując metodę Image.load.  
Image image = Image.load(  "output.png");
// Zapętlaj możliwy zakres CompressionLevel
for (int i = 0; i <= 9; i++) {
    // Utwórz instancję PngOptions dla każdego wynikowego pliku PNG, aby uzyskać dostęp do opcji PNG.
    PngOptions options = new PngOptions();
    // Ustaw poziom kompresji. Natomiast poziom kompresji obrazu png mieści się w zakresie 0-9, gdzie 9 to maksymalna kompresja, a 0 to tryb przechowywania. 
    options.setCompressionLevel(i);
    // Zapisz wynik na dysku wywołując metodę save. 
    image.save("CompressingFiles_out" + i + ".png", options);
}

Kompresuj obrazy TIFF w Javie

Podobnie ta biblioteka umożliwia zbudowanie kompresora obrazów online, w którym można zmniejszyć rozmiar plików obrazów TIFF za pomocą kilku linii kodu Java.

Możesz wykonać kroki wymienione poniżej:

  1. Wywołaj metodę image.load, aby załadować obraz poprzez ścieżkę pliku lub strumień.
  2. Utwórz instancję TiffOptions dla wynikowego obrazu.
  3. Ustaw BitsPerSample, tryb fotometryczny i tryb kompresji, wywołując metodę setBitsPerSample.
  4. Wywołaj metodę setCompression, aby ustawić kompresję.
  5. Wywołaj metodę setPhotometric, aby ustawić fotometrykę.
  6. Ustaw paletę skali szarości, wywołując metodę setPalette.
  7. Save wynik.

Poniższy fragment kodu pokazuje, jak kompresować obrazy TIFF w Javie:

// Wywołaj metodę image.load, aby załadować obraz poprzez ścieżkę pliku lub strumień.  
try (Image image = Image.load(  "sample.tiff"))
{
    // Utwórz instancję TiffOptions dla wynikowego obrazu. 
    TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);
    // Ustaw BitsPerSample, tryb fotometryczny i tryb kompresji, wywołując metodę setBitsPerSample.
    outputSettings.setBitsPerSample(new int[] { 4 });
    // Wywołaj metodę setCompression, aby ustawić kompresję. 
    outputSettings.setCompression(TiffCompressions.AdobeDeflate);
    // Wywołaj metodę setPhotometric, aby ustawić fotometrykę. 
    outputSettings.setPhotometric(TiffPhotometrics.Palette);
    // Ustaw paletę odcieni szarości, wywołując metodę setPalette. 
    outputSettings.setPalette(ColorPaletteHelper.create4BitGrayscale(false));
    // Zapisz wynik. 
    image.save(  "out_adobedeflate.tiff", outputSettings);
}

Wynik możesz zobaczyć na obrazku poniżej:

Kompresuj obrazy TIFF

Zdobądź bezpłatną licencję

Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować interfejs API bez ograniczeń ewaluacyjnych.

Podsumowując

To prowadzi nas do końca tego samouczka. Nauczyłeś się, jak zmniejszać rozmiar obrazu w Javie, a także poznałeś kilka innych ważnych tematów. Co więcej, opisałeś, jak kompresować obrazy TIFF i programowo zmniejszać rozmiar obrazu PNG. Ten wpis na blogu pomoże Ci zbudować kompresor obrazu online przy użyciu kilku linii kodu źródłowego. Na koniec nie pomijaj dokumentacji, jeśli chcesz zbudować reduktor rozmiaru obrazu dla swojej aplikacji biznesowej.

Ponadto sugerujemy skorzystanie z naszego Przewodnika wprowadzającego.

Wreszcie conholdate.com pisze nowe posty na blogu. Prosimy zatem o kontakt w celu otrzymywania regularnych aktualizacji.

Zadać pytanie

Możesz dać nam znać o swoich pytaniach lub wątpliwościach na naszym forum.

Często zadawane pytania

Jak zmienić rozmiar obrazu w kodowaniu?

Zainstaluj tę bibliotekę, która przetwarza obrazy Java, aby programowo zmieniać rozmiar obrazów. Oferuje metody manipulowania obrazami przy użyciu kilku linijek kodu źródłowego w Javie.

Zobacz też