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 :

Déplacement et redimensionnement d'image


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut Déplacement et redimensionnement d'image
    Bonjour !

    Bon alors ce que j'essaie de faire n'a rien de compliqué, enfin dans le cas général... Je charge une image dans un JPanel, je dois pouvoir la déplacer par cliquer/glisser et zoomer dessus avec la molette de la sourie. En gros du GoogleMaps mais là c'est juste sur une image représentant un plan de machine.

    Mon soucis : mon image est au format cgm, du vectoriel. Du coup j'ai importé une librairie pour gérer le format cgm.

    Jusque là j'ai réussit à déplacer l'image, même si ce déplacement n'est pas fluide (je ne sais d'ailleurs pas pourquoi, est-ce le format CGM qui est mal géré ? lorsque je remplace mon cgm par un png le déplacement est fluide)

    Quand au zoom... en fait je suis bloquée là. Je ne trouve pas le moyen de redimensionner une image au format cgm. Connaissez-vous une méthode le permettant ?


    Étant donné que ça fait déjà deux semaines que je suis là dessus, j'ai cherché également d'autre format de fichier vectoriel. J'ai trouvé EMF. J'ai récupéré là aussi une librairie pour le lire. J'ai deux solution :
    • Transformer le fichier EMF en BufferedImage: avec EMFImageLoader()
    • Transformer le EMF en SVG: avec EMF2SVG()


    J'ai testé la première solution mais je n'ai toujours pas réussit à afficher l'image dans un JPanel... La deuxième je vais commencer maintenant.


    Je viens donc vers vous pour savoir si vous avez une solution quand au redimensionnement d'image CGM, ou EMF.

    Si j'utilise des extensions de fichier peu connues, comparé à du SVG par exemple, c'est parce que les plans que l'on me donne sont générés depuis une application qui ne génère pas de SVG... Donc pas trop le choix.


    Je vous remercie d'avance. Si vous voulez voir mon code, dites moi quelles parties, que je cible car il commence à être gros...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Petit up et surtout progression !

    Alors pour l'instant j'ai déjà réussi à faire un déplacement et un zoom super propre avec un png (oui faut commencer par du facile !), et j'ai testé avec un svg ça marche également très bien !


    Je laisse de côté pour l'instant le cgm, trop galère. En revanche je reviens sur l'EMF, on peut le convertir en SVG avec la classe EMF2SVG (enfin il me semble) ! Du coup une fois convertis j'ai plus qu'à afficher le svg !

    Mon soucis : Je n'arrive pas à utiliser EMF2SVG... cette classe ne possède que la méthode main(String[] args) qui soit disant utilise la méthode export()... mais alors là je suis pommée, j'ai essayer d'appeler moi-même export() mais bon ça doit pas être comme ça...

    Quelqu'un sait comment je peux convertir mon image emf en svg ? (en passant ou non par ce que j'ai cité au dessus)


    Merci d'avance ! o/

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ces classes ne font pas partie de la distribution standard de java. Merci de nous donner le nom de la librairie utilisée.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    la libraire que j'ai importé s'appelle FreeHEP VectorGraphics.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Bah tu trouveras ta réponse dans la javadoc de la classe EMF2SVG...

    La javadoc est là pour être lue de temps en temps quand même...
    Citation Envoyé par Javadoc freeHEP
    simple class that uses EMFConverter to convert emf to svg. Uses EMFConverter.export(String, String, String) with type = SVG.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 50
    Points : 37
    Points
    37
    Par défaut
    Oui je l'ai déjà lu et relu plus d'une fois (bon mon anglais n'aide pas donc c'est nécessaire de relire ^^' ). Je n'arrivais pas exécuter export() qui est protected.
    J'ai pu avancer aujourd'hui, j'ai modifié la structure de mon code. Du coup j'ai créé une classe Image qui hérite de EMFConverter pour pouvoir appeler export. Mais mon problème n'est pas résolu pour autant.

    J'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try{
     
    	EMFConverter.export("SVG","./src/test.emf","./src/test.svg");
    	//EMF2SVG.export("SVG", "./src/test.emf","./src/test.svg");
    	image = ImageIO.read(new File("./src/test.svg"));
     
    }
        	catch (Exception e){
    }
    J'ai essayé également avec la ligne en commentaire. Au final mon fichier test.svg se créé là où il faut sauf que lorsque je l'insère dans un buffered image, ce dernier me renvois null. J'ai modifié le chemin de destination en essayant les valeurs :
    • ./src/test.svg
    • test.svg
    • null


    Les trois fonctionnent (création du fichier au bon endroit) mais le fichier qui en ressort est soit vide soit illisible, toujours lorsque j'interroge la valeur de la bufferedImage la contenant j'obtiens null.

    Le terminal m'affiche ces erreurs (en sachant que Images est le nom de ma classe contenant le code mis plus haut) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    at org.freehep.graphicsio.exportchooser.AbstractExportFileType.getGraphics(AbstractExportFileType.java:261)
    	at org.freehep.graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:248)
    	at org.freehep.graphicsio.exportchooser.AbstractExportFileType.exportToFile(AbstractExportFileType.java:282)
    	at org.freehep.graphicsio.emf.EMFConverter.export(EMFConverter.java:81)
    	at Images.<init>(Images.java:21)
    Vu que les chemins spécifiés sont bons, je ne sais pas d'où cela vient...

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/02/2014, 20h51
  2. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  3. [réglé][JSP - Resin] Redimensionnement d'images ...
    Par Claude Pelletier dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/03/2005, 18h47
  4. [VB.NET] Redimensionner une image proportionnelement
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2004, 12h10
  5. [MX2004] redimensionner une image lors du chargement
    Par ouinouin dans le forum Flash
    Réponses: 8
    Dernier message: 18/02/2004, 18h32

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