在BufferedImage上绘制填充矩形

Joh*_*Fox 13 java bufferedimage graphics2d

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

我想要做的是在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"));
Run Code Online (Sandbox Code Playgroud)

无论出于何种原因,资源中的图像在此代码段之后不会更改.关于我做错了什么的任何想法?

小智 -2

我知道这是一个老问题,但也许它对某人有用,我认为你应该使用这个

graph.drawImage(x,y,width,height); //First you draw the image
graph.setColor(Color.black); //Then set the color to black
graph.fillRect(img.getX(), img.getY(), img.getWidth(), img.getHeight());// Finally draw a black rectangle on it
Run Code Online (Sandbox Code Playgroud)

顺便说一下,如果没有更多的代码,很难找到解决方案。希望它会有用。