15

そのため、機密情報を含む調査のセクションを黒く塗りつぶすことができるアプリケーションを作成しようとしています。しかし、私は少し問題に遭遇しました。

私がやりたいことは、指定されたx、y、幅、および目的の領域の高さを指定してBufferedImageの上に塗りつぶされた黒い四角形を描画し、その新しい画像をファイルシステムに書き戻すことです。これが私のコードです。

File imageFile = new File("images/template.jpg");
BufferedImage img = ImageIO.read(imageFile);
        
Graphics2D graph = img.createGraphics();
graph.setColor(Color.BLACK);
graph.fill(new Rectangle(x, y, width, height));
graph.dispose();
        
ImageIO.write(img, "jpg", new File("images/template.jpg"));

なんらかの理由で、このコード セグメントの後、リソース内の画像は変更されません。私が間違っていることについてのアイデアはありますか?

4

4 に答える 4

-2

古い質問だと思いますが、誰かに役立つかもしれません。これを使用する必要があると思います

graph.drawImage(x,y,width,height); //First you draw the image
graph.setColor(Color.black); //Then set the color to black
graph.fillRect(img.getX(), img.getY(), img.getWidth(), img.getHeight());// Finally draw a black rectangle on it

ところで、もう少しコードを追加しないと解決策を見つけるのは困難です。それが役に立つことを願っています。

于 2014-05-08T22:43:17.853 に答える
-3

この行を置き換えるだけです:

Graphics2D graph = img.createGraphics();

これとともに:

Graphics2D graph = img.getGraphics();
于 2014-12-03T10:22:47.083 に答える