1

我一直在尝试这样做大约一个星期。每次我尝试某些事情都失败了。所以我转向复制其他人的代码......他们说这些代码对他们有用......但对我来说却失败了。

我最终喜欢的一段代码来自以下。

如何在 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;
    }
}

这段代码出现以下错误。

错误 2

错误 1

我在这里先向您的帮助表示感谢!

4

1 回答 1

3

第一个错误说它找不到方法drawImage(BufferedImage,int,int,double,double,double,double,double,double,<nulltype>)。所有这些双值都来自一个矩形,对吧?

图形有一个drawImage(BufferedImage,int,int,int,int,int,int,int,int,ImageObserver)方法。这可能是您尝试使用的那个。您应该改用 int 值。

第二个错误说它找不到构造函数BufferedImage(double, double, int)。这是一个类似的问题。

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

于 2011-06-01T01:18:59.440 回答