Dessiner un Rectangle plein sur une BufferedImage

Je suis donc d'essayer de créer une application qui peut black-out sections d'un sondage qui contient des informations sensibles. Cependant, je ai couru dans un peu d'un problème.

Ce que je veux faire est d'attirer rempli de rectangles noirs sur une BufferedImage x, y, largeur et hauteur de la région souhaitée dans le noir, puis d'écrire que la nouvelle image de mon système de fichier. Voici mon code.

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

Pour quelque raison que ce soit l'image de la ressource ne change pas après ce segment de code. Toutes les idées sur ce que je fais mal?

En êtes-vous des erreurs? Ne horodatage sur le changement de fichier après l'exécution du code?
1) Pour mieux aider plus tôt, après une SSCCE. 2) Essayez d'écrire une nouvelle image.

OriginalL'auteur John Fox | 2012-07-24