2017-08-16 9 views
0

BufferedImageの周りに矩形を描きたいので、フレームのような枠を作成します。画像の周囲に矩形を描く

だから私は2 BufferedImageのロード:

BufferedImage a = ImageIO.read(new File(aPath)); 
BufferedImage b = ImageIO.read(new File(bPath)); 

を、描画のためにそれを送信します。それは何もしないいくつかの理由

private void drawImageBorder(BufferedImage imageWithoutBorder) { 

    Graphics2D graph = imageWithoutBorder.createGraphics(); 
    graph.setColor(Color.BLACK); 
    //create a black Rectangle - 1px bigger the original image 
    graph.fill(new Rectangle(imageWithoutBorder.getMinX(), imageWithoutBorder.getMinY(), imageWithoutBorder.getWidth() + 1, imageWithoutBorder.getHeight() +1)); 
    //draw the image inside it 
    graph.drawImage(imageWithoutBorder, 0, 0, null); 
    graph.dispose(); 
} 

、そこdrawing-filled-rectangle-over-a-bufferedimageようsimilerの質問がありますが、私は役に立つ答えをfinndことができませんでした。

ありがとうございました。

答えて

0

ほぼ正しいですが、サイズと位置が大きくなっています。

BufferedImage image = ImageIO.read(new File(imagePath)); 
int w = image.getWidth(); 
int h = Image.getHeight(); 
int border = 1; 

BufferedImage framedImage = new BufferedImage(w + 2*border, h + 2*border, image.getType()); 

Graphics2D graph = framedImage.createGraphics(); 
graph.setColor(Color.BLACK); 
graph.fill(new Rectangle(0, 0, w + 2*border, h + 2*border)); 
graph.drawImage(image, border, border, null); 
graph.dispose(); 
+0

結果を試して投稿する。 –

+0

さて、私はそれをテストしたが、それは何も、何も考えていないのですか? –

+0

を試してみてください。検出を容易にするために境界線を4に設定してください(/排他的な矩形境界内)。ImageIO.writeを使用してframedImageを新しいファイルに書き込みます。 –