java,图片大小调整

java,图片大小调整,java,resize,image,Java,Resize,Image,我在用java调整图片大小时遇到问题 我从xml文档中获取图片,但大多数图片都处于横向模式! 我需要将它们调整大小/转换为纵向模式,以便它们适合我的GUI布局 有什么方法可以做到这一点吗?您可以按相同的值缩放宽度和高度,以获得具有类似分辨率的图像 但你真正的问题是什么?如何缩放或什么 我写这篇文章是为了根据目标宽度和高度以相同的值缩放高度和宽度 import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java

我在用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.awt.Graphics2D;
导入java.awt.image.buffereImage;
导入java.io.File;
导入java.io.IOException;
导入javax.imageio.imageio;
公共类图像测试{
公共静态缓冲区图像大小调整(int targetWidth、int targetHeight、,
缓冲区映像(src){
double scaleW=(double)targetWidth/(double)src.getWidth();
double scaleH=(double)targetHeight/(double)src.getHeight();
双刻度=scaleW
要将图片从横向模式转换为纵向模式,而不旋转,首先必须裁剪图片。然后,您可能必须减小图片的大小

假设您的风景图片是500 x 300像素,您希望您的肖像图片是150 x 250像素

通过裁剪中心,可以将横向图片裁剪为180 X 300像素。然后可以将裁剪后的图片缩小到150 x 250像素

下面是一些用于裁剪图像的Java代码:

    int x           = (videoWidth - imageWidth) / 2;
    int y           = (videoHeight - imageHeight) / 2;
    CropImageFilter cropFilter = new CropImageFilter
            (x, y, imageWidth, imageHeight);
    Image croppedImage = toolkit.createImage(new FilteredImageSource
            (image.getSource(), cropFilter));

image是java.awt.image,toolkit是默认的java.awt.toolkit。

是的,我想知道是否有办法在不裁剪图片的情况下调整大小!我想使用整个图片,而不是一个提取器,首先我猜,然后调整大小!我只找到了裁剪图片的方法!但我想知道是否有一种方法可以只调整整个图片的大小,而不进行裁剪(并松开图片的一部分)