java,调整图片大小

标签 java resize image

我在 Java 中调整图片大小时遇到​​问题!

我从 xml 文档中获取图片,但大多数都是横向模式! 我需要将它们调整大小/转换为纵向模式,以便它们适合我的 GUI 布局。

有没有办法做到这一点?

最佳答案

您可以将宽度和高度缩放相同的值以获得具有相似分辨率的图像。

但是你真正的问题是什么?如何扩展或者什么?

我写这个是为了根据目标宽度和高度将高度和宽度缩放相同的值

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageTest {
    public static BufferedImage resize(int targetWidth, int targetHeight,
            BufferedImage src) {
        double scaleW = (double) targetWidth / (double) src.getWidth() ;
        double scaleH = (double) targetHeight / (double) src.getHeight() ;

        double scale = scaleW < scaleH ? scaleW : scaleH;

        BufferedImage result = new BufferedImage((int) (src.getWidth() * scale),
                (int) (src.getHeight() * scale), BufferedImage.TYPE_INT_ARGB);

    Graphics2D g2d = result.createGraphics();
        g2d.drawImage(src, 0, 0, result.getWidth(), result.getHeight(), null);
        g2d.dispose();

        return result;
    }

    public static void main(String[] args) throws IOException {
        BufferedImage origin = ImageIO.read(new File(
                "/home/marcos/icons/print.png"));

        File dest = new File("/home/marcos/icons/print2.png");
        dest.createNewFile();
        ImageIO.write(resize(180, 200, origin), "PNG", dest);
    }
}

关于java,调整图片大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316055/

相关文章:

wpf - 对于 DataGridRowHeader,CanUserResize=false

java - 调整大小后 JLabel 文本在 JPanel 中消失

java - 除了 Guice-no-aop,是什么让 Guice 无法在 Android 上运行?

java - 使用 SpringBoot-App 作为 Ubuntu 18.04 服务运行 Tomcat 9

java - Gson 反序列化 - 映射小写字段的嵌套类

php - 我需要我的 PHP 页面来显示来自 mysql 数据库的 BLOB 图像

javascript - 检查图像是否为空

java - 无法访问java泛型类的方法

javascript - 调整使用 window.open 创建的窗口大小

java - 使用默认路径