1

私はこれを約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

最初のエラーは、 method が見つからないことを示していますdrawImage(BufferedImage,int,int,double,double,double,double,double,double,<nulltype>)。これらの double 値はすべて Rectangle から来ていますよね?

グラフィックにはdrawImage(BufferedImage,int,int,int,int,int,int,int,int,ImageObserver)メソッドがあります。それはおそらくあなたが使おうとしているものです。代わりに int 値を使用する必要があります。

2 番目のエラーは、コンストラクターが見つからないことを示していますBufferedImage(double, double, int)。これは同様の問題です。

Rectangle は、int 精度フィールドxyheight、および を公開しwidthます。使えますか?たとえば、rect.x代わりにrect.getX()

于 2011-06-01T01:18:59.440 に答える