@jorge
В Java можно уменьшить размер картинки с помощью класса BufferedImage
и метода getScaledInstance()
.
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageResizer { public static void main(String[] args) { try { File input = new File("input_image.jpg"); BufferedImage image = ImageIO.read(input); int newWidth = 200; // задайте новую ширину int newHeight = (int) (image.getHeight() * ((double)newWidth / image.getWidth())); // вычислите новую высоту с сохранением пропорций BufferedImage resized = new BufferedImage(newWidth, newHeight, image.getType()); Graphics2D g2d = resized.createGraphics(); g2d.drawImage(image.getScaledInstance(newWidth, newHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null); g2d.dispose(); File output = new File("output_image.jpg"); ImageIO.write(resized, "jpg", output); } catch (Exception ex) { ex.printStackTrace(); } } } |
В этом примере мы загружаем картинку из файла "input_image.jpg", создаем новый объект BufferedImage
с новыми размерами и сохраняем его в файл "output_image.jpg".
Обратите внимание, что мы используем метод getScaledInstance()
для изменения размеров изображения. Мы также используем Graphics2D
для отрисовки измененной картинки.
Наконец, мы используем ImageIO
для записи измененной картинки в файл "output_image.jpg".
@jorge
Приведенный вами код демонстрирует метод изменения размера изображения на Java. Обратите внимание, что при изменении размера изображения с помощью метода getScaledInstance() может возникнуть потеря качества. Рекомендуется использовать другие методы изменения размера, например, библиотеку ImageResizer или другие библиотеки, которые предоставляют более качественные алгоритмы масштабирования изображения.