如何使用java在现有png图像上绘制矩形

时间:2014-04-10 03:28:05

标签: java draw

我有png图像,保存在我的本地PC中。 我想打开(加载)此图像,并使用java在此图像@指定位置(x,y,宽度,高度)上绘制一个矩形。任何人都可以帮我这样做......

等效C#代码如下。我想要一个相同的java版本


Image oriImage = // load from file
Rectangle rect = new Rectangle(0, 1824, 1080, 96);
Bitmap eleImg = new Bitmap(oriImage, (int)(oriImage.Width / rate), (int)(oriImage.Height / rate));

Graphics g = Graphics.FromImage(eleImg);
g.DrawRectangle(new Pen(Color.Red, 5), rect);

2 个答案:

答案 0 :(得分:6)

您使用2D图形API

BufferedImage img = ImageIO.read(...);
Graphics2D g2d = img.createGraphics();
g2d.setColor(Color.RED);
g2d.drawRect(0, 0, 100, 100);
g2d.dispose();

看看

了解更多详情

答案 1 :(得分:0)

对于任何尝试实施此解决方案的人来说都是一个提示:

为了将更改实际保存到图像,您需要添加几行:

[...]
g2d.dispose();
try {
    ImageIO.write(img, "png", image_file);
} catch (Exception e) {
    System.out.println("[ERROR] Could not save image.");
}

其中image_file =您打开的文件(大概与ImageIO.read中使用的文件相同)