Bonjour,

Je travaille avec un ArrayList<IIOImage> contenant des images scannées et mises au format TIFF, puis affichées en aperçu à l'écran dans mon applet. J'ai tenté de faire une inversion avec JAI et de la retourner en BufferedImage pour qu'elle puisse être affichée dans l'aperçu mais cela ne marche pas et j'ai cette erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
Je comprends qu'apparemment j'utilise un index indéfini dans un tableau? Mais si c'est bien ça je ne vois pas du tout pourquoi j'ai cette ereur.

Voici mon code pour l'inversion:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
/**
     * Execute le traitement d'image->Invert
     * @return
     */
    protected BufferedImage doViewControlInvert()
    {
        PlanarImage input = PlanarImage.wrapRenderedImage(this.book.get(this.bookIndex).getRenderedImage());
        PlanarImage output = JAI.create("invert", input);
 
        BufferedImage BIInverted = output.getAsBufferedImage();
 
        RenderedImage RIInverted = (RenderedImage)BIInverted;
        IIOImage documentInverted = (IIOImage)RIInverted;
        this.book.set(this.bookIndex, documentInverted); // mise à jour de la page avec le résultat de l'inversion
 
        return this.IIOImageToBufferedImage(documentInverted);
    }
 
/**
     * Convertit une IIOImage en BufferedImage
     * @param IIOImage image à convertir
     * @return BufferedImage
     */
    protected BufferedImage IIOImageToBufferedImage(IIOImage iioImage)
    {
        RenderedImage renderedImage = iioImage.getRenderedImage();
        BufferedImage bufferedImage = (BufferedImage)renderedImage;
 
        return bufferedImage;
    }
Pour l'erreur la console me renvoie à BufferedImage BIInverted = output.getAsBufferedImage();

Quelqu'un comprend-il ce qui ne va pas?

Merci d'avance!