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 :

[JAI] Probème d'utilisation avec RCP


Sujet :

2D Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut [JAI] Probème d'utilisation avec RCP
    Bonjour,

    je travail sur une application Eclipse RCP et j'ai besoin de faire un peu de traitement d'image (rotation, redimensionnement, contraste, etc...)

    J'ai cherché un peu sur le net et j'ai trouvé cette librairie : JAI (Java Advanced Imaging) qui est une surcouche à la librairie standard java.awt.image.

    J'ai fait une petite classe avec 2-3 fonction simple, que j'ai testé séparement, et ça marche.

    Cependant impossible de l'utiliser au sein de mon application RCP, ça ne fait simplement "rien". Enfin si, tout appel a la librairie provoque une erreur quelque part, car les instruction suivante sont ignorées.

    Quel pourait etre la solution a mon problème ?


    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Personne ?

    Je precise que je ne fait que manipuler les objets, en aucun cas cela remonte au niveau de mon interface utilisateur. Vu que c'est de l'awt derriere, je ne pourrai pas en RCP.

    Code de ma fonction si ça peut aider (meme si ça marche) :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    package classePrincipale;
     
    import java.awt.image.renderable.ParameterBlock;
    import javax.media.jai.*;
     
    public class TraitImage {
     
    		private String cheminImage;
    		private PlanarImage img;
     
    		public TraitImage(String adr)
    		{
    			cheminImage=adr;
    			this.loadImage();
    		}
     
    		//accesseur
    		public String getCheminImage() {
    			return cheminImage;
    		}
     
    		public void setCheminImage(String cheminImage) {
    			this.cheminImage = cheminImage;
    		}
     
    		private void loadImage()
    		{
    			img = JAI.create("FileLoad",cheminImage);
    		}
     
    		public void saveImage()
    		{
    			JAI.create("FileStore", img,cheminImage,"JPEG");
    		}
     
    		public void rotation(int angle)
    		{
    			float angleRad = (float)Math.toRadians(angle);
    			float centerX = img.getWidth()/2f;
    			float centerY = img.getHeight()/2f;
    			ParameterBlock pb = new ParameterBlock();
    			pb.addSource(img);
    			pb.add(centerX);
    			pb.add(centerY);
    			pb.add(angleRad);
    			pb.add(new InterpolationBilinear());
    			img = JAI.create("rotate", pb);
     
    		}
     
    		public void resizeImage(float scale)
    		{
     
    			ParameterBlock pb = new ParameterBlock();
    			pb.addSource(img);
    			pb.add(scale); //param pour la taille
    			pb.add(scale);
    			pb.add(0.0f);//param de translation
    			pb.add(0.0f);
    			pb.add(new InterpolationNearest());
    			img = JAI.create("scale", pb);	
    		}
    }

  3. #3
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    Quel est exactement l'erreur ?
    Il faut integrer à RCP les librairies JAI, c'est fait ?

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Citation Envoyé par fnobb
    Bonjour,

    Quel est exactement l'erreur ?
    Il faut integrer à RCP les librairies JAI, c'est fait ?

    Et bien le problème ce que je n'ai aucune erreur qui remonte! :s

    Si je fait un try/catch autour d'un truc qui fait appel a JAI, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     try {
    	PlanarImage img = JAI.create("FileLoad","E:/image.jpg");
    	JAI.create("FileStore", img,"E:/image2.jpg","JPEG");
    }catch(Exception e1){
     MessageDialog.openError(getSite().getShell(),"Erreur",e1.getMessage());
    }
    Je n'ai rien.

    Mais ça ne marche pas quand meme...

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Alors j'ai constaté un truc,

    quand je passe donc pas ma classe pour le traitement d'image, le simple appel au constructeur plante, avant meme de faire la premiere ligne de code!

    J'ai essayé d'afficher un message a la premiere ligne sans succes...

    Sinon oui, les lib osnt iben présente dans le projet, vu que je les ai directement ajouter au lib de jre. Et j'ai verif, elles apparaissent bien.

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Dans le jre ?

    Est-ce bien lui qui est utilisé pour l'execution ?
    RCP ne gère pas de trace ? parcequ'un plantage sans trace c'est bizarre.
    Pour eclipse il y a des logs dans "workspace\.metadata"

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Citation Envoyé par fnobb
    Dans le jre ?

    Est-ce bien lui qui est utilisé pour l'execution ?
    RCP ne gère pas de trace ? parcequ'un plantage sans trace c'est bizarre.
    Pour eclipse il y a des logs dans "workspace\.metadata"
    En tout cas les lib sont présente dans le projet.

    Et au niveau des log je n'ai rien :'(

    L'application ne "plante" pas vraiment, mais le code en question associé a mon bouton ne marche pas...

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Bon, personne n'a une idée du problème ?


    I lva falloir qu eje me tourne vers autre chose :'(

  9. #9
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    J'ai enfin réussi a trouvé l'info concernant mon probleme dans les .log (j'avais mal cherché il faut croire)



    Voici :

    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
    !ENTRY org.eclipse.ui 4 0 2007-07-03 11:09:38.328
    !MESSAGE javax/media/jai/PlanarImage
    !STACK 0
    java.lang.NoClassDefFoundError: javax/media/jai/PlanarImage
    	at classeVue.AjoutVentePopup.<init>(AjoutVentePopup.java:47)
    	at classeVue.ListeVenteView$5.mouseDown(ListeVenteView.java:379)
    	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:133)
    	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
    	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
    	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
    	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
    	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
    	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
    	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
    	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    	at winmaj2.Application.run(Application.java:18)
    	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
    	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
    	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
    	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
    	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
    	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
    	at org.eclipse.core.launcher.Main.run(Main.java:977)
    	at org.eclipse.core.launcher.Main.main(Main.java:952)
    Donc en gros c'est un probleme d'installation de ma librairie non ?

    La librairie a été placé dans java/jre/lib/ext comme precisé sur les instructions.
    Je vois bien la librairie quand je programme, ça marche d'ailleur sur un projet non rcp.

    Quand je regarde dans les propriété de mon projet je vois :





    Il ne s'agit pas d'un plugin, alors je n'ai pas de dependance a indiquée?!
    Que faut-il donc que je fasse pour que ça marche...

  10. #10
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    Il serait peut-être bon de savoir quelle version de java utilse tu lors du lancement de ton RCP.

    Est ce bien celui qui contient les jars ? (j'ai un doute)

  11. #11
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Bonjour,

    j'ai eu la réponse ailleur, apres tant de galere...


    En faite pour faire l'usage de librairie externe dan sune application RCP il faut créer un plugin qui regroupe ces librairies. Quand on fait nouveau projet -> plugin project il y a le choix "a partir de fichier jar existant". Donc il suffit de selectionner tout les jar de la librairie, et d'ajouter ensuite la dependance entre les plugins...!


    Solution simple, mais quand on ne sait pas on cherche longtemps!!

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

Discussions similaires

  1. Application utilisable avec plusieurs SGBD - ADO ou DBX ?
    Par RamDevTeam dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 08h25
  2. Réponses: 10
    Dernier message: 30/11/2004, 10h12
  3. [LG]Connaitre l'OS utilisé avec Pascal
    Par Ilove dans le forum Langage
    Réponses: 17
    Dernier message: 05/02/2004, 20h51
  4. problème d'utilisation avec turbo pascal 7.0
    Par le 27 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 03/12/2003, 10h44
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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