Copie et subimage

Copie et subimage - Java - Programmation

Marsh Posté le 12-03-2012 à 18:10:12    

Bonjour
 
J'ai une bufferedImage de laquelle je souhaite extraire des sous-image (par ex via la méthode subimage) SANS qu'elles ne partagent les données de l'image de départ (ce que ne permet pas la méthode subimage), ceci afin de pouvoir travailler sur les sous-images sans modifier l'image de base.
 
J'ai alors deux solutions :
- soit "cloner" l'image de base (buffered n'étant pas cloneable, j'utilise une fonction :

Code :
  1. public static BufferedImage cloneBufferedImage(BufferedImage bi) {
  2.         ColorModel cm = bi.getColorModel();
  3.         boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
  4.         WritableRaster raster = bi.copyData(null);
  5.         return new BufferedImage(cm, raster, isAlphaPremultiplied, null);
  6.     }

)
, puis faire un subimage. Ca marche mais ca fait qu'on a un grand nombre de copies de l'image complète dans la mémoire vive, ce qui ne me plait pas trop
- soit faire un subimage sur l'image de départ puis "cloner" le résultat via cette fonction. Le problème c'est que j'ai l'exception

Code :
  1. Exception in thread "main" java.lang.IllegalArgumentException: Raster ByteInterleavedRaster: width = 1920 height = 1200 #numDataElements 3 dataOff[0] = 2 has minX or minY not equal to zero: -1270 -400


 
(mon image de base a pour taille 1920*1200 et ma sous image commence au pixel 1270-400)
Comment faire donc pour résoudre le problème ??
 
Merci d'avance

Reply

Marsh Posté le 12-03-2012 à 18:10:12   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed