Bonjour,
voici mon soucis, je dois passer un bufferedImage en parametre d'une fonction pour pouvoir lui attribuer une valeur, mais cela ne marche pas...
j'ai une fonction du genre
Code :
- int calcul(BufferedImage image)[
- // blabla
- try {
- image = ImageIO.read(in);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return 1;
- }
|
et une autre qui fait :
Code :
- BufferedImage bi = null;
- int ret = calcul(bi);
- if(bi == null){
- System.out.println("image null" );
- }
|
cela m'affiche
image nulle
mon image bi reste a la valeur null alors que je lui attribue une image dans la fonction calcul()...
j'ai deja resolu ce probleme pour des int et des String en utilisant IntHolder et StringHolder, qui permettent un passage d'argument par adresse et surtout qui ne sont pas immutable comme String et Integer
mais je ne vois pas pourquoi cela ne marche pas avec un BufferedImage puisque c'est un objet donc le passage se fait par adresse... la modification devrait être prise en compte...
Je sais que ma question peut paraitre bizzare, donc je precise que je ne PEUX PAS passer ma bufferedImage en retour de fonction, ca marche, pas de soucis mais je dois absolument retourner un entier donc pas de retour possible de cette facon.
Et je ne souhaite absolument pas creer un nouveau type d'objet genre MonImage qui contiendrait une bufferedImage ou qqch comme ca..
si quelqu'un a une solution, ou tout du moins une explication ca serait super !
merci