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 :
) , 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 :
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 ??
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 :
)
, 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
(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