繁体   English   中英

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

[英]How do I draw a rectangle on an existing png image using java

我有保存在本地 PC 中的 png 图像。 我想打开(加载)这个图像并使用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);

您使用 2D 图形 API

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

看一眼

更多细节

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM