Bonjour,
J'ai une méthode qui me permet d'appliquer une inversion sur une image. Je travaille avec des images en noir et blanc (TYPE_BYTE_BINARY) et des images en couleur (TYPE_INT_RGB). Le résultat est ok pour les images couleurs, mais pas pour les noir et blanc:
1 2 3 4 5 6 7 8 9 10 11 12
|
protected BufferedImage doViewControlInvert()
{
BufferedImage imageInverted = new BufferedImage(this.currentBufferedImage.getWidth(), this.currentBufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
byte[] inverser = new byte[256];
for (int i=0; i<256; i++) inverser[i] = (byte) (255-i);
ByteLookupTable table = new ByteLookupTable(0, inverser);
LookupOp inversion = new LookupOp(table, null);
inversion.filter(this.currentBufferedImage, imageInverted);
return imageInverted;
} |
J'obtiens l'erreur :
java.lang.IllegalArgumentException: LookupOp cannot be performed on an indexed image
Je comprends qu'il faudrait d'abord effectuer une conversion sur les images noir et blanc avant de les donner à la méthode d'inversion. Quelqu'un sait comment faire ça ou a une autre solution svp?
Merci
Partager