Изменение размера изображения с помощью средства изменения размера изображения Java

Редакторы изображений предоставляют функцию изменения размера, которая позволяет изменять размер изображений в соответствии с вашими требованиями. При разработке редактора изображений или обработке изображений в приложениях Java может потребоваться программное изменение размера изображений. Для этого в этой статье рассказывается, как изменить размер изображений в Java. Кроме того, вы также узнаете, как изменять размер изображений, используя различные методы изменения размера.

Java API для изменения размера изображений

Aspose.Imaging for Java — это широко используемый API для обработки изображений, который позволяет довольно легко манипулировать изображениями. Мы будем использовать этот API для изменения размера изображений в этой статье. Вы можете загрузить API из раздела загрузок. Кроме того, вы можете установить его из Maven, используя следующую конфигурацию в pom.xml.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.12</version>
    <classifier>jdk16</classifier>
</dependency>

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

Aspose.Imaging for Java предоставляет два способа изменения размера растровых изображений. Одним из них является простое изменение размера, при котором вы указываете высоту и ширину результирующего изображения. Принимая во внимание, что во втором методе вы также указываете тип изменения размера, который сообщает API о методе изменения размера, который следует использовать, например повторная выборка Ланцоша, повторная выборка ближайшего соседа и т. д. В следующих разделах мы обсудим, как реализовать каждый из эти методы для изменения размера изображений.

Изменение размера изображения с помощью простого изменения размера

В этом методе изменения размера вам нужно указать только размеры результирующего изображения. Ниже приведены шаги по изменению размера изображения в Java.

  • Во-первых, используйте класс Image для загрузки изображения, размер которого вы хотите изменить.
  • Затем вызовите метод Image.resize(int, int), чтобы изменить размер изображения.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

Следующий фрагмент кода изменяет размер изображения до заданной высоты и ширины.

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

// Определить новые размеры
image.resize(300, 300);

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

Изменение размера изображения с использованием типа изменения размера

Aspose.Imaging for Java предоставляет широкий спектр методов изменения размера, которые перечислены здесь. Вы можете выбрать тот, который соответствует вашему сценарию. Например, Lanczos Resampling рекомендуется для качественного изменения размера изображения, однако работает он медленнее. Принимая во внимание, что для быстрого изменения размера используется передискретизация ближайших соседей, однако это ставит под угрозу качество изображения. Ниже приведены шаги по изменению размера изображения с использованием определенного метода изменения размера.

  • Во-первых, используйте класс Image для загрузки изображения, размер которого вы хотите изменить.
  • Затем вызовите метод Image.resize(int, int, ResizeType), чтобы изменить размер изображения с помощью определенного метода.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

В следующем примере кода показано, как изменить размер изображения с помощью определенного метода изменения размера.

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

// Определение новых размеров и изменение размера типа
image.resize(300, 300, ResizeType.LanczosResample);

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

Пропорциональное изменение размера изображения в Java

Соотношение сторон рассчитывается при изменении размера изображений, чтобы избежать уменьшения или масштабирования результирующих изображений. Однако любой неверный расчет соотношения сторон может привести к растянутому изображению. Чтобы избавиться от таких проблем, вы можете позволить API самому позаботиться о соотношении сторон. Ниже приведены шаги для пропорционального изменения размера изображения.

  • Во-первых, используйте класс Image для загрузки изображения, размер которого вы хотите изменить.
  • Кэшируйте данные изображения, используя метод Image.cacheData().
  • Задайте высоту и ширину результирующего изображения.
  • Вызовите методы Image.resizeWidthProportionally(int) и Image.resizeHeightProportionally(int) для вычисления значений пропорций.
  • Наконец, сохраните полученное изображение с помощью метода Image.save(string).

Вы также можете указать конкретный тип изменения размера при пропорциональном изменении размера изображения, используя методы перегрузки Image.resizeWidthProportionally(int, ResizeType) и Image.resizeHeightProportionally(int, ResizeType).

В следующем примере кода Java показано, как пропорционально изменить размер изображения.

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

// Определить новые размеры
int newWidth = image.getWidth() / 2;
image.resizeWidthProportionally(newWidth);
int newHeight = image.getHeight() / 2;
image.resizeHeightProportionally(newHeight);

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

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

Вы также можете изменить размер векторного изображения и сохранить его в формате растрового изображения, таком как PNG, JPEG, GIF и т. д. Следующий код демонстрирует, как добиться этого в Java с помощью Aspose.Imaging.

// Загрузить векторное изображение
try (Image image = Image.load("image.svg"))
{
  	// Определить новые размеры
	image.resize(image.getWidth() * 10,image.getHeight() * 15);
  
  	// Сохраните изображение в формате PNG
	image.save("Logotype_10_15.png", new PngOptions());
}

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

Вы можете использовать Aspose.Imaging for Java без оценочных ограничений, получив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как программно изменять размер изображений в Java. Кроме того, в статье рассказывается, как изменять размер изображений с использованием различных методов, таких как повторная выборка Ланцоша, повторная выборка ближайшего соседа и т. д. Кроме того, также обсуждаются пропорциональное изменение размера изображения и изменение размера векторных изображений. Вы можете посетить документацию, чтобы узнать больше об API обработки изображений Java. Кроме того, вы можете изучить примеры исходного кода, доступные на GitHub. В случае возникновения вопросов вы можете связаться с нами на нашем форуме.

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