Изменение размера изображений в Java

Изменение размера изображений является распространенной необходимостью в различных приложениях, от веб-разработки до обработки документов и графического дизайна. Будь то необходимость уменьшить изображения для оптимизации скорости загрузки или увеличить их для печати в высоком разрешении, Java предлагает мощные решения для эффективной обработки изменения размера изображений. В этом посте в блоге мы рассмотрим, как изменять размер растровых и векторных изображений в Java. Мы предоставим пошаговые примеры, демонстрирующие, как программно изменять размер различных типов изображений, таких как JPG, PNG, SVG и др.

Вы будете изучать следующие заголовки, чтобы подробно исследовать эту тему:

Зачем изменять размер изображений?

Изменение размера изображений необходимо в различных сценариях, включая:

  • Оптимизация производительности сайта: Большие изображения могут замедлять работу сайтов. Изменение их размера на подходящие размеры улучшает скорость загрузки страницы и повышает пользовательский опыт.

  • Уменьшение места для хранения: Изменение размера изображений на меньшие размеры уменьшает объем файлов, что экономит дисковое пространство и пропускную способность.

  • Печать и графические приложения: Увеличение изображений для высококачественной печати при сохранении качества имеет решающее значение в цифровом издании и графическом дизайне.

  • Согласованный вид на устройствах: Разные размеры экранов требуют динамической подгонки изображений, чтобы сохранить однородный внешний вид.

Масштабирование фотографий - Конфигурация Java API

Вы можете легко установить Conholdate.Total for Java, чтобы масштабировать фотографии в Java. Просто вставьте следующие конфигурации Maven в файл pom.cml вашего приложения:

<dependency>
<groupId>com.conholdate</groupId>
<artifactId>conholdate-total</artifactId>
<version>25.1</version>
<type>pom</type>
</dependency>

Теперь давайте исследуем, как изменять размер как растровых, так и векторных изображений в Java.

Изменение размера растровых изображений JPG или PNG в Java

Растровые изображения, такие как PNG и JPEG, состоят из пикселей. При изменении размера растровых изображений важно сохранить соотношение сторон и минимизировать потерю качества. Вам нужно следовать приведенным ниже шагам, чтобы изменить размер JPG, PNG, BMP или других растровых изображений в Java.

  • Загрузка изображения: Входное изображение загружается с помощью метода Image.load().

  • Кэширование данных изображений: Обеспечение кэширования данных изображений улучшает производительность обработки.

  • Изменение размера пропорционально: Изображение изменяется в размере до половины своей оригинальной ширины и высоты для поддержания аспектного отношения.

  • Сохранение вывода: Изменённое изображение сохраняется в формате PNG.

Следующий фрагмент кода на Java демонстрирует, как изменить размер растрового изображения с помощью Java:

// Загрузить изображение
com.aspose.imaging.Image image = com.aspose.imaging.Image.load("aspose-logo.png");

// Кэшировать данные изображений
if (!image.isCached())
{
    image.cacheData();    
}
    
// Укажите ширину и высоту
int newWidth = image.getWidth() / 2;
image.resizeWidthProportionally(newWidth);
int newHeight = image.getHeight() / 2;
image.resizeHeightProportionally(newHeight);

// Сохранить изображение
image.save("ResizeRasterImage.png");

Изменение размера векторных изображений SVG в Java

В отличие от растровых изображений, векторные изображения (например, SVG) не зависят от разрешения и используют математические уравнения для определения форм. Изменение размера векторных изображений связано с масштабированием без потери качества.

  • Загрузка векторного изображения: Файл SVG загружается с помощью метода Image.load().

  • Изменение размера изображения: ширина увеличивается в 10 раз, а высота увеличивается на 15.

  • Настройка параметров растеризации: Векторное изображение подготовлено для растеризации в формат PNG.

  • Сохранение измененного изображения: Финальный вывод сохраняется в формате PNG.

Ниже приведён пример на Java, демонстрирующий, как изменить размер векторного изображения и сохранить его в формате PNG:

// Загрузить векторное изображение
com.aspose.imaging.Image image = com.aspose.imaging.Image.load("image.svg");

// Изменить размер изображения в формате PNG
image.resize(image.getWidth() * 10,image.getHeight() * 15);
com.aspose.imaging.imageoptions.PngOptions options = new com.aspose.imaging.imageoptions.PngOptions();
options.setVectorRasterizationOptions(new com.aspose.imaging.imageoptions.SvgRasterizationOptions());

// Сохранить выходное изображение с измененным размером
image.save("resize.png", options);

Получите бесплатную лицензию

Вы можете протестировать все функции API на полную мощность, получив бесплатную временную лицензию.

Сводя итоги

Вы можете эффективно изменять размер как растровых, так и векторных изображений, сохраняя качество. Если вы хотите оптимизировать изображения для веба, снизить затраты на хранение или обеспечить согласованное отображение на различных устройствах, Java предлагает мощные решения для масштабирования изображений. Если у вас есть какие-либо вопросы, пожалуйста, напишите нам на forum.

Смотрите также