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

AWT/Swing Java Discussion :

Problème rotation PNG (Unknown image type 0)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Par défaut Problème rotation PNG (Unknown image type 0)
    Bonjour à tous, j'ai cherché en vain, sur les forums etc...mais j'ai rien trouvé alors je poste ici ma question.

    Voilà je souhaite afficher une image dont on a préalablement fait une rotation.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BufferedImage image = ImageIO.read(new File(nomImage));
    					image=rotation(image, 90);
    					g.drawImage(image, 0, 0, null);
    Le problème, c'est que j'ai droit à une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Unknown image type 0
    Mon image est une png. J'ai essayé avec des jpg, et cela fonctionne !

    Ce qui m'étonne le plus, c'est qu'une buffered image est indépendante du type de l'image (d'après ce que j'ai pu lire).

    Voyez-vous d'où viendrais le problème par chance ?

    Par avance merci.

    EDIT :

    Pour info, voici la methode de rotation (trouvée sur internet)

    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
    	 public BufferedImage rotation(BufferedImage bi, int degrees) {
    			degrees = degrees % 360;
    			if (degrees > 180)
    				degrees = 180 - degrees;
    			double angle = (degrees * Math.PI) / 180.0f;
    			if (angle == 0.0)
    				return bi;
    			// TODO une vrai rotation pour calculer la taille exacte de l'image
    			// après rotation
    			int sx = bi.getWidth();
    			int sy = bi.getHeight();
    			if (degrees == 90 || degrees == -90) {
    				sx = bi.getHeight();
    				sy = bi.getWidth();
    			}
    			BufferedImage rot = new BufferedImage(sx, sy, bi.getType());
    			AffineTransform at = new AffineTransform();
    			at.translate(sx / 2, sy / 2);
    			at.rotate(angle);
    			at.translate(-bi.getWidth() / 2, -bi.getHeight() / 2);
    			AffineTransformOp ato = new AffineTransformOp(at,
    					AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
    			return ato.filter(bi, rot);
    		}

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Euh, ton exception elle survient à la lecture ou à la rotation de ton image?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Par défaut
    Bonjour et merci pour ta réponse, mon exception survient a la rotation (mais seulement avec le png !)

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Bah remplaces ton bi.getType par un BufferedImage.TYPE_INT_ARGB pour voir ce que ça donne (c'est le type par défaut d'une BufferedImage)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 68
    Par défaut
    Merci beaucoup ! Ca marche ! le problème est donc Résolu !
    Merci encore

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2010, 18h17
  2. Problème pour faire la rotation d'une image(Avec ImageJ)
    Par tadjara dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 12/04/2010, 11h48
  3. Problème pour faire la rotation d'une image(Avec ImageJ)
    Par tadjara dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 10/04/2010, 11h33
  4. Problème pour faire l'histogramme d'une image type png
    Par Patchanka dans le forum Images
    Réponses: 9
    Dernier message: 28/05/2009, 10h04
  5. Problème pour charger des images PNG
    Par milena dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 05/04/2008, 16h20

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