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

Java Discussion :

Problème enregistrement image


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut Problème enregistrement image
    Bonjour,

    J'ai fait un petit programme qui permet d'appliquer une roation à une image et d'enregistrer les modifications.

    Le code d'enregistrement est:

    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
     
    public static void enregistrerImage(BufferedImage imBuff_,String format_,String nomImage_){
     
    	File ficherImage=new File(nomImage_);
    	try {
    		ImageIO.write(imBuff_, format_, ficherImage);
    	} catch (IOException e) {
     
    		e.printStackTrace();
    	}
     
     
     
     
    }
    Le code qui permet d'effectuer la roation est:

    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
     
    public static BufferedImage rotate(double angled, BufferedImage image){
     
    			 double angle=angled*Math.PI*1/180;
    			   double sin = Math.abs(Math.sin(angle)), cos = Math.abs(Math.cos(angle));
    		        int w = image.getWidth(), h = image.getHeight();
    		        int neww = (int)Math.floor(w*cos+h*sin), newh = (int)Math.floor(h*cos+w*sin);
    		        GraphicsConfiguration gc = getDefaultConfiguration();
    		        BufferedImage result = gc.createCompatibleImage(neww, newh, Transparency.TRANSLUCENT);
    		        Graphics2D g = result.createGraphics();
    		        g.translate((neww-w)/2, (newh-h)/2);
    		        g.rotate(angle, w/2, h/2);
    		        g.drawRenderedImage(image, null);
    		        g.dispose();
    		        return result;
     
     
    		   }
     public static GraphicsConfiguration getDefaultConfiguration() {
    		        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    		        GraphicsDevice gd = ge.getDefaultScreenDevice();
    		        return gd.getDefaultConfiguration();
    		    }
     
     
     
     
     
     
    }
    Lorsque j'afficher direcement l'image dans une JFrame, tout ce passe bien, image bien retournée et même qualité. Mais quand j'enregistre une image retournée sous un format autre que png l'image aparait un peut flou(première photo en fichier attaché).

    D'où pourrait venir le problème?

    Merci.
    Images attachées Images attachées   

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Mais quel est le format destination justement ?
    Si c'est du JPEG il te faut controler sa qualite/taux de compression pour eviter de trop degrader l'image par rapport a l'image source.
    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

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 111
    Par défaut
    Bonjour,

    Pour l'image de gauche, j'ai utilisé le format jpg(c'est lui qui pose problème), l'autre image, en png est correcte. En fait, lorsque je lis une image et je l'enregistre, comme mentionné, il n'y a pas de problème, même en jpg, mais une fois que j'applique une roation(même de 0°), le problème survient...

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    N'oublie pas que si tu re-sauvegarde en JPEG après la rotation, tu re-perds de la qualité puisque tu repasses une couche de compression destructrice par dessus ton image originelle or la compression de l'image va se faire différement selon son orientation en fonction de l'algo de compression JPEG (comprendre les mêmes images, une placée horizontalement et une autre tournée de 90° ne se compresseront pas forcément de la même manière puisque l'algorithme ne traite pas les pixels dans le même ordre).

    Il semble exister des méthodes pour faire une rotation d'un JPEG sans perdre de qualité (donc sans recompression) en tout cas mon logiciel de dessin le permet mais j'ignore si ceci est possible via ImageIO. Peut-être avec le JAI (Java Advanced Imaging).

    Note : c'est une supposition j'ignore si c'est bien là la source réelle de ton problème.
    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

Discussions similaires

  1. [Débutant] Probléme enregistrement image picturebox aprés modification
    Par Audrey43 dans le forum VB.NET
    Réponses: 11
    Dernier message: 24/02/2012, 14h41
  2. Problème couleur enregistrement image
    Par jparc dans le forum MATLAB
    Réponses: 2
    Dernier message: 19/05/2011, 14h31
  3. Probléme enregistrement image webcam
    Par devnino dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2010, 10h30
  4. Interop.Word Enregistrer fichier problème encodage image
    Par the java lover dans le forum C#
    Réponses: 1
    Dernier message: 13/01/2010, 10h36
  5. Problème d'image avec DirectX9 et c# VS.net...
    Par lilly_lilly dans le forum DirectX
    Réponses: 1
    Dernier message: 02/03/2004, 14h02

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