gpt4 book ai didi

java - 在 BufferedImage 上绘制填充矩形

转载 作者:搜寻专家 更新时间:2023-10-30 21:13:15 27 4
gpt4 key购买 nike

因此,我正在尝试创建一个应用程序,可以将包含敏感信息的调查部分涂黑。但是我遇到了一些问题。

我想做的是在 BufferedImage 上绘制填充的黑色矩形,给定 x、y、宽度和所需区域的高度以涂黑,然后将该新图像写回我的文件系统。这是我的代码。

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"));

无论出于何种原因,资源中的图像在此代码段后都没有改变。对我做错了什么有什么想法吗?

最佳答案

我为您的代码创建了一个可运行的示例,它对我来说运行良好。我使用 Java 8 运行这段代码。

这是修改后的图像。我在已有的图像上画了黑色方 block 。

Altered Image

这是我运行的代码。我直接从我的文件系统中读取原始图像。

package com.ggl.testing;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageProcessing implements Runnable {

public static void main(String[] args) {
new ImageProcessing().run();
}

@Override
public void run() {
File imageFile = new File("C:\\Users\\Owner\\Pictures\\Saved Pictures\\Analog Clock Calendar.jpg");
BufferedImage img;
try {
img = ImageIO.read(imageFile);
} catch (IOException e1) {
e1.printStackTrace();
return;
}

Graphics2D graph = img.createGraphics();
graph.setColor(Color.BLACK);
graph.fill(new Rectangle(100, 100, 100, 100));
graph.dispose();

try {
ImageIO.write(img, "jpg",
new File("altered.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}

}

我的结论是您没有正确阅读图片,您的 x、y、宽度和/或高度超出了图片的限制,或者我遗漏了其他内容。

关于java - 在 BufferedImage 上绘制填充矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634867/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com