2017-08-16 170 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

嘗試將'border'設置爲4以便檢測(在/獨佔矩形邊界),並將framedImage寫入帶有ImageIO.write的新文件。 –