IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

[JAVA] Redimension d'image


Sujet :

2D Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut [JAVA] Redimension d'image
    Bonjour,
    Je cherche a redimensionner une image en java pour qu'elle rentre dans un JPanel. J'ai essayé avec getScaledInstance mais il ne change absolument pas la taille de l'image a l'affichage.

    Merci d'avance pour vos reponses

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111

  3. #3
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Tu peux aussi surcharger la méthode paint component et dessiner ton image avec drawImage(...) (méthode de la classe Graphics)

  4. #4
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Bah, tu implémentes tout à la main, petit flémard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    	/** 
             * Effectue une redimensionnement de l'image
             * @param image L'image à redimensionner
             * @param targetSizeX La largeur de l'image cible
             * @param targetSizeY La hauteur de l'image cible
             * @return L'image réduite ou agrandie
             */
    	public final static BufferedImage scale(BufferedImage image, int targetSizeX, int targetSizeY) {
    		if (image == null || targetSizeX == 0 || targetSizeY == 0)
    			return null;
     
    		double horizontalScaleValue = ((double) targetSizeX / image.getWidth());
    		double verticalScaleValue = ((double) targetSizeY / image.getHeight());
     
    		AffineTransform scaler = new AffineTransform();
    		scaler.scale(horizontalScaleValue, verticalScaleValue);
    		AffineTransformOp op = new AffineTransformOp(scaler, AffineTransformOp.TYPE_BILINEAR);
     
    		BufferedImage scaledImage = new BufferedImage(targetSizeX, targetSizeY, BufferedImage.TYPE_INT_ARGB);
     
    		scaler = null;
     
    		return op.filter(image, scaledImage);
    	}
    Tu as de la chance, j'ai résolu pas mal de petits bugs zujourdh'ui. Sinon, je t'aurai envoyé boulet!

    CU

    Billy

  5. #5
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    tu refait le boulot du drawImage(...), à mon avis, c'est pas utile

  6. #6
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Ouep possible!!! mais quand on ne sait pas, on cherche 5-10minutes, et si on ne trouve pas on le code soi-même

    Je savais qu'une telle méthode existe (normal), mais je ne savais pas que c'était celle là!

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    Merci pour toutes vos reponses, finalement ce n'etait pas grand chose : je ne pouvais pas redimensionner directement la variable j'ai donc du par une variable temporaire.

    Seulement j'ai un autre probleme

    En fait je cherche a selectionner une partie de l'image. J'utilise donc les mouseEvents. Mais ceux qui m'interressent ne repondent pas (MousePressed et MouseReleased) alors que MouseDragged et MouseMoved repondent tres bien. J'ai pas mal cherché sur internet mais je tombe toujours sur la meme syntaxe que la mienne. Peut-etre l'un de vous a deja eu ce probleme?

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    probablement car tu as fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addMouseMotionListener(listener);
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addMouseListener(listener);
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    Non ca ca ne change rien
    Peut-etre qu'un bout de code aiderait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class AfficheImg extends JPanel{
     
    	public Image myimg;
    	public int x0, x1, y0, y1;
     
    	AfficheImg(String img){
    		super();
    		this.addMouseListener(new SelectionRubiks());
    //....
    }
    et les reponses aux evenements sont dans un fichier SelectionRubiks

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public class SelectionRubiks extends MouseInputAdapter{
     
    	private AfficheImg grille;
     
    	public void MouseClicked(MouseEvent e){
    	}
     
    	public void MousePressed(MouseEvent e){
    		grille.x0 = e.getX();
    		grille.y0 = e.getY();
    		System.out.println(grille.x0 + " " + grille.y0);
    	}
     
    	public void MouseReleased(MouseEvent e){
    		grille.x1 = e.getX();
    		grille.y1 = e.getY();
     
     
    		System.out.println(grille.x1 + " " + grille.y1);
    		Image tmp = grille.myimg;
     
    		grille.myimg=Toolkit.getDefaultToolkit().createImage(
    				new FilteredImageSource((tmp).getSource(),
    						new CropImageFilter(grille.x1,grille.y1,Math.abs(
    								grille.x1-grille.x0),Math.abs(grille.y1-grille.y0))));
     
     
    		grille.repaint();
    	}
    	public void mouseEntered(MouseEvent e) {}
    	public void mouseExited(MouseEvent e) {}
    	public void mouseDragged(MouseEvent e) {}
    	public void mouseMoved(MouseEvent e) {}
     
    	}

  10. #10
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Tes methodes... leur nom n'est pas correct c'est mouseClicked() pas MouseClicked(), respectivement pour les autres.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Par défaut
    Merci beaucoup!! Comme quoi les erreurs les plus petites sont souvent les plus chiantes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JAVA] Imprimer des images
    Par arnaud036 dans le forum 2D
    Réponses: 7
    Dernier message: 18/09/2007, 16h24
  2. redimension d'image et modification de resolution
    Par bennji dans le forum Imagerie
    Réponses: 1
    Dernier message: 16/07/2007, 13h31
  3. [GD] Script de redimension d'image
    Par lyoan dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/03/2007, 11h27
  4. [GD] Redimension d'image - plusieurs erreurs dans mon script
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/02/2007, 10h58
  5. Java et traitement image
    Par martini37 dans le forum 2D
    Réponses: 13
    Dernier message: 14/02/2007, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo