У різних сценаріях зображення стискаються, щоб зменшити розмір файлу. Для цього різні онлайнові та офлайнові програми дозволяють застосовувати стиснення зображень. Однак у деяких випадках вам може знадобитися реалізувати функцію стиснення зображень у веб-програмі або програмі для настільного комп’ютера. Для таких випадків у цій статті описано, як програмно стискати зображення PNG, JPEG і TIFF за допомогою Java.

Найкращий API для стиснення зображень Java — безкоштовно завантажити

Aspose.Imaging for Java — це потужний API, який дозволяє виконувати різноманітні операції обробки зображень із програм Java. Крім того, він дозволяє легко стискати зображення PNG, JPEG і TIFF. Щоб використовувати API, ви можете завантажити його JAR або встановити його у своїх програмах на основі 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>

Стискайте зображення PNG у Java

Формат PNG підтримує стиснення без втрат, тобто стиснення зображення PNG зменшить його розмір, але не якість. Для зображень PNG Aspose.Imaging for Java дозволяє встановлювати рівні стиснення від 0 до 9, де 0 і 9 є мінімальним і максимальним рівнями стиснення відповідно. Нижче наведено кроки для стиснення зображення PNG за допомогою Java.

  • Спочатку завантажте зображення PNG за допомогою класу Image.
  • Створіть екземпляр класу PngOptions.
  • Встановіть рівень стиснення за допомогою методу PngOptions.setCompressionLevel(int).
  • Нарешті, збережіть стиснене зображення PNG за допомогою методу Image.save(String, PngOptions).

У наступному прикладі коду показано, як стиснути зображення PNG за допомогою Java.

// Завантажити зображення з файлу (або потоку)
Image image = Image.load("aspose_logo.png");

// Перехід до можливого діапазону рівня стиснення
for (int i = 0; i <= 9; i++) {
	
  // Створіть екземпляр PngOptions для кожного результуючого PNG
	PngOptions options = new PngOptions();
	
  // Встановити рівень стиснення
	options.setCompressionLevel(i);
	
  // Зберегти результат на диск (або потік)
	image.save("CompressingFiles_out" + i + ".png", options);
}

Стиснення зображень JPEG за допомогою Java

Для стиснення зображень JPEG Aspose.Imaging for Java надає такі типи стиснення.

  • Базовий рівень
  • Прогресивний
  • Без втрат
  • JpegLs

Нижче наведено кроки для застосування одного із зазначених вище типів стиснення до зображень JPEG за допомогою Java.

У наступному прикладі коду показано, як стискати зображення JPEG за допомогою Java.

// Завантажити зображення
Image original = Image.load("Input.jpeg");
try
{
    JpegOptions jpegOptions = new JpegOptions()
	  {{
        // Застосуйте компресію
		    setCompressionType(JpegCompressionMode.Progressive);
	  }};
  
  // Зберегти стиснене зображення
  original.save("result.jpg", jpegOptions);
}
finally
{
  original.dispose();
}

Стискайте зображення TIFF за допомогою Java

Aspose.Imaging for Java надає різні типи стиснення TIFF, зокрема LZW, Packbits, CCIT Fax 3 & 4 тощо. Тому ви можете вибрати тип стиснення, який найкраще відповідає вашим вимогам. Нижче наведено кроки для виконання стиснення TIFF за допомогою Java.

  • Спочатку завантажте зображення TIFF за допомогою класу Image.
  • Створіть екземпляр класу TiffOptions.
  • Встановіть рівень стиснення за допомогою методу TiffOptions.setCompression(TiffCompressions).
  • Встановіть інші параметри, такі як біт на зразок, фотометричний, палітра тощо.
  • Нарешті, збережіть стиснене зображення TIFF за допомогою методу Image.save(String, TiffOptions).

У наступному прикладі коду показано, як стискати зображення TIFF за допомогою Java.

// Завантажте зображення через шлях до файлу або потік
try (Image image = Image.load("sample.tiff"))
{
	// Створіть екземпляр TiffOptions для отриманого зображення
	TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

	// Установіть BitsPerSample, Compression, Photometric mode та палітру відтінків сірого
	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 для стиснення зображень – отримайте безкоштовну ліцензію

Якщо ви хочете випробувати API без обмежень оцінки, ви можете отримати безкоштовну тимчасову ліцензію.

Висновок

Часто потрібне стиснення зображень, щоб зменшити розмір зображень. Тому в цій статті описано, як програмно стискати зображення PNG, JPEG і TIFF за допомогою Java. Крім того, ви можете дізнатися більше про API обробки зображень Java за допомогою документації.

Дивись також

Інформація: компанія Aspose нещодавно розробила нову онлайн-веб-програму, яка дозволяє перетворювати набір зображень у відео. Вас також може зацікавити інший сервіс, який можна використовувати для стиснення відео шляхом вилучення звуків із відео.