使用Java在Java中裁剪图像?

时间:2011-06-01 01:04:30

标签: java bufferedimage symbols drawimage

我一直试图这样做一个星期。每次我都尝试过失败的东西。所以我转向复制其他代码......他们说代码适用于他们......但它失败了。

我最终喜欢的代码来自以下内容。

How To Crop Image in Java (StackOverflow)

那时我就基本上复制了这个。

import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;

public class ImageEditor {

    public BufferedImage crop(BufferedImage src, Rectangle rect) {
        BufferedImage dest = new BufferedImage(rect.getWidth(), rect.getHeight(), BufferedImage.TYPE_INT_RGB);
        Graphics g = dest.getGraphics();
        g.drawImage(src, 0, 0, rect.getWidth(), rect.getHeight(), rect.getX(), rect.getY(), rect.getX() + rect.getWidth(), rect.getY() + rect.getHeight(), null);
        g.dispose();
        return dest;
    }
}

此代码出现以下错误。

Error 2

Error 1

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

第一个错误表示无法找到方法drawImage(BufferedImage,int,int,double,double,double,double,double,double,<nulltype>)。所有这些双精度值都来自一个矩形,对吗?

GraphicsdrawImage(BufferedImage,int,int,int,int,int,int,int,int,ImageObserver)方法。那可能是你想要使用的那个。您应该使用int值。

第二个错误表示无法找到构造函数BufferedImage(double, double, int)。这是一个类似的问题。

Rectangle公开int精度字段xyheightwidth。你能用它们吗?例如,rect.x而不是rect.getX()