Redimensionner une image pour affichage

Redimensionner une image pour affichage - Java - Programmation

Marsh Posté le 05-11-2002 à 20:16:44    

Salut à tous !
 
Je voudrais savoir comment je pourrais redimensionner une image de type "jpeg", "gif", "bmp" afin de pouvoir effectuer un affichage presque "standard"(dimensions fixes) à partir d'images de n'importe quelles dimensions...
 
Voilà tout le problème...
 
Merci d'avance !
 

Reply

Marsh Posté le 05-11-2002 à 20:16:44   

Reply

Marsh Posté le 05-11-2002 à 22:26:40    

essaye ca : JavaTM Advanced Imaging API  
 
http://java.sun.com/products/java-media/jai/


---------------
Avoir un arbre dans son jardin n'empêche en rien de se promener en forêt.
Reply

Marsh Posté le 05-11-2002 à 22:30:21    

ca va etre tres tres moche, si tu prends une taille standard .. bonjour les disproportions

Reply

Marsh Posté le 06-11-2002 à 09:02:10    

Ouais, utilise JAI.
Avec JAI, essayer de faire qqch avec juste la Javadoc, c impossible.
Avec le guide JAI, c pas tout simple.
Alors fais comme ça pour redimentionner ton image :

Code :
  1. // Ouverture de l'image en mémoire
  2. FileSeekableStream stream = new FileSeekableStream(fTonFichierImage);
  3. PlanarImage image = JAI.create("stream", stream);
  4. /* Redimentionnement : toi, ce qui t'interresse, c'est this.m_fScaleX et this.m_fScaleY qui est l'échelle par rapport à la nouvelle taille, en X et en Y (c un taux : 1,0 est la taille originale) */
  5. ParameterBlockJAI pb = new ParameterBlockJAI("scale" );
  6. pb.addSource(this.image);                   // Image
  7. pb.set(this.m_fScaleX, 0);                  // Scale en X
  8. pb.set(this.m_fScaleY, 1);                  // Scale en Y
  9. pb.set(0.0F, 2);                            // translation en X
  10. pb.set(0.0F, 3);                            // translation en Y
  11. pb.set(new InterpolationNearest(), 4);      // Interpolation
  12. // Crée l'opération de scale
  13. PlanarImage newImage= JAI.create("scale", pb, null);
  14. // Pour afficher l'image tu peux par exmeple faire ça :
  15. JAI.create("encode", image, _out, strFormat, null);
  16. // _out étant un flux de sortie (OutputStream)


 
Voila, bonne chance...


Message édité par El_gringo le 06-11-2002 à 09:03:10
Reply

Marsh Posté le 06-11-2002 à 09:17:38    

...Pour faire le lien avec AWT :  
PlanarImage est une RenderedImage.

Reply

Marsh Posté le 06-11-2002 à 10:16:36    

[:cupra]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-11-2002 à 10:32:54    

ça veut dire quoi ce smiley ?

Reply

Marsh Posté le 06-11-2002 à 10:51:14    

que j'ai lu le thread et que je n'ai rien à ajouter ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 06-11-2002 à 12:29:02    

haaa... ok !
ça représente quoi au juste ?

Reply

Marsh Posté le 06-11-2002 à 13:28:56    

El_Gringo a écrit a écrit :

haaa... ok !
ça représente quoi au juste ?




 
un smiley qui se cache derriere un rideau

Reply

Marsh Posté le 06-11-2002 à 13:28:56   

Reply

Marsh Posté le 09-11-2002 à 17:34:02    

Citation :

Ouais, utilise JAI.  
Avec JAI, essayer de faire qqch avec juste la Javadoc, c impossible.  
Avec le guide JAI, c pas tout simple.  
Alors fais comme ça pour redimentionner ton image :[cpp]  
// Ouverture de l'image en mémoire  
FileSeekableStream stream = new FileSeekableStream(fTonFichierImage);  
PlanarImage image = JAI.create("stream", stream);  
/* Redimentionnement : toi, ce qui t'interresse, c'est this.m_fScaleX et this.m_fScaleY qui est l'échelle par rapport à la nouvelle taille, en X et en Y (c un taux : 1,0 est la taille originale) */  
ParameterBlockJAI pb = new ParameterBlockJAI("scale" );  
pb.addSource(this.image);                   // Image  
pb.set(this.m_fScaleX, 0);                  // Scale en X  
pb.set(this.m_fScaleY, 1);                  // Scale en Y  
pb.set(0.0F, 2);                            // translation en X  
pb.set(0.0F, 3);                            // translation en Y  
pb.set(new InterpolationNearest(), 4);      // Interpolation  
 
// Crée l'opération de scale  
PlanarImage newImage= JAI.create("scale", pb, null);  
 
// Pour afficher l'image tu peux par exmeple faire ça :  
JAI.create("encode", image, _out, strFormat, null);  
// _out étant un flux de sortie (OutputStream)  


 
Je fais mon truc en Swing et j'ai plein d'erreurs à la compilation...
 
HELP !!!
 
Merci.

Reply

Marsh Posté le 09-11-2002 à 17:45:04    

iut orsay detected ! 2eme année

Reply

Marsh Posté le 09-11-2002 à 18:05:33    

Arabic man detected !

Reply

Marsh Posté le 09-11-2002 à 18:07:47    

ex-ramasseur de coton detected :fuck:

Reply

Marsh Posté le 12-11-2002 à 09:01:07    

kigid a écrit a écrit :

Citation :

Ouais, utilise JAI.  
Avec JAI, essayer de faire qqch avec juste la Javadoc, c impossible.  
Avec le guide JAI, c pas tout simple.  
Alors fais comme ça pour redimentionner ton image :[cpp]  
// Ouverture de l'image en mémoire  
FileSeekableStream stream = new FileSeekableStream(fTonFichierImage);  
PlanarImage image = JAI.create("stream", stream);  
/* Redimentionnement : toi, ce qui t'interresse, c'est this.m_fScaleX et this.m_fScaleY qui est l'échelle par rapport à la nouvelle taille, en X et en Y (c un taux : 1,0 est la taille originale) */  
ParameterBlockJAI pb = new ParameterBlockJAI("scale" );  
pb.addSource(this.image);                   // Image  
pb.set(this.m_fScaleX, 0);                  // Scale en X  
pb.set(this.m_fScaleY, 1);                  // Scale en Y  
pb.set(0.0F, 2);                            // translation en X  
pb.set(0.0F, 3);                            // translation en Y  
pb.set(new InterpolationNearest(), 4);      // Interpolation  
 
// Crée l'opération de scale  
PlanarImage newImage= JAI.create("scale", pb, null);  
 
// Pour afficher l'image tu peux par exmeple faire ça :  
JAI.create("encode", image, _out, strFormat, null);  
// _out étant un flux de sortie (OutputStream)  


 
Je fais mon truc en Swing et j'ai plein d'erreurs à la compilation...
 
HELP !!!
 
Merci.




 
Bah, si tu dis pas ce que c'est tes erreurs, personne risque de t'aider !

Reply

Marsh Posté le 13-11-2002 à 11:16:20    

En fait, ma question c'est comment utilise-t-on JAI ???
 
Voilà...

Reply

Marsh Posté le 13-11-2002 à 12:55:47    

kigid a écrit a écrit :

En fait, ma question c'est comment utilise-t-on JAI ???
 
Voilà...




 
Comme pour n'importe quelle API...
On l'téléchargé (apprend à utiliser un moteur de recherche)
On installe pour le runtime (pour JAI, c un bête setup)
On l'installe pour la compile (classpath)

Reply

Marsh Posté le 13-11-2002 à 14:20:11    

kigid a écrit a écrit :

En fait, ma question c'est comment utilise-t-on JAI ???
 
Voilà...




 
 :pfff:


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

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