begin process at 2010 02 10 00:56:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Image et vidéo

 > 

Image interne a charger


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Image interne a charger

jeudi 3 avril 2008 à 12:33:05 | Image interne a charger

mouchimouchi

Hello,
Autant dire que je ne m'y connais pas trop, genre debutant a fond.

J'essaye d'utiliser une classe ImagePanel ... pour utiliser une image chargée comme un panel.
Et pour le constructeur il faut :
            public ImagePanel ( File fileImg , int x , int y , int width , int height )

Donc moi ca fait chier u niveau du file :
    J'ai essayer :
            File fImg = new File("img/fond.png");
            ImagePanel image = new ImagePanel(fImg, 0, 0, 800, 600);
    Ca me retourne une erreur de la classe ImagePanel : Fichier Invalide.

    Jme suis dit que ca vient de la classe et non elle est bonne, et donc ca viendrais de l'url et donc j'ai tester ca :
            String file = "/img/fond.png";
            File fImg = new File(getClass().getResource(file).toURI());
            ImagePanel image = new ImagePanel(fImg, 0, 0, 800, 600);
    Ca ne me fait rien comme erreur sauf lorsque je lance le .jar en ligne de commande, ca rends une Exception a n'y rien comprendre :
             Exception in Thread ...java... URI is not Hierachical : et des libreries java.

Bon en esperant que quelqu'un reponde
Merci
a pluss
   
jeudi 3 avril 2008 à 14:45:40 | Re : Image interne a charger

Ombitious_Developper

Salut:

Tout dépend de l'emplacement des resources (images, ...).

Normalement, lorsque tu utilises la méthode getResource() tu dois placer/mettre la resource en question à auprès de la classe.

C'est à dire: la classe et le dossier des ressources (s'il existe) doivent se situer dans un même niveau.

|---- ImagePanel.class
|
|----+ img
     |---- image.png

jeudi 3 avril 2008 à 14:56:52 | Re : Image interne a charger

Ombitious_Developper

Salut:

Avec le code présent de ImagePanel tu es dans l'obligation de mettre toutes les images de ton projets dans le package où se localise la classe ImagePanel.

Si tu ne veux pas suivre cette démarche, et associer à chaque interface utilisateur son propre dossier de ressources, tu dois fournir un paramètre supplémentaire au constructeur de la classe ImagePanel de type Class, qui référe à la classe désirant utiliser une image de fond.

Package:

|----+ com
     |------+ util
     |      |-------- ImagePanel
     |
     |------+ view
            |-------- MyFrame
            |--------+ resources
                     |----------- bg.png



J'espère avoir était clair.
jeudi 3 avril 2008 à 16:27:19 | Re : Image interne a charger

mouchimouchi

Heuheuheu
Je t'avouerai avoir compris partiellement.
merci quand meme.

Mais si j'ai bien compris il faut que toutes mes images soit dans un dosier bien precis ...
Je voulais utilisai cette classe dans l'optique d'utiliser le FileChooser, pour qu'un utilisateur choisisse son image et qu'elle s'affiche . Aveec un tas d'option propre au panel basic.

si tu a un ptit exemple d'application pour que je puisse voir comment faire

Merci
jeudi 3 avril 2008 à 16:50:41 | Re : Image interne a charger

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

si tu veux charger une image qui se trouve dans le JAR ou tu veux charger une image depuis le disque dur ?




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
jeudi 3 avril 2008 à 17:08:55 | Re : Image interne a charger

mouchimouchi

Bin enfaite ...

il me faut les 2, a partir du dd et aussi dans le jar.
A partir du dd le chemin absolut me suffisé : c:\\moi\\toi\\img.png.
Mais a partir du jar j'ai bô essayé de mettre img/fond.png, et toutes les combinaisons possibles avec ca, ca me met "Can't read file input".
Cette erreur m'est retourner par la classe de DARKSIDIOUS.
(tres bonne classe je trouve ).

Voilou

ps : Ombitious peux-tu mieux expliquer ton 2eme poste avec la hierarchis tous ca tous ca ???
jeudi 3 avril 2008 à 18:15:35 | Re : Image interne a charger

Steph115

Membre Club
Bonjour,

Savez vous quels paramètres faut il rajouter dans ces lignes de codes pour utiliser un fichier interne au JAR :

String file = "/img/fond.png";
File fImg = new File(getClass().getResource(file).toURI());
ImagePanel image = new ImagePanel(fImg, 0, 0, 800, 600);

Comme l'a stiplué Ombitious_Developper :
Si tu ne veux pas suivre cette démarche, et associer à chaque interface utilisateur son propre dossier de ressources, tu dois fournir un paramètre supplémentaire au constructeur de la classe ImagePanel de type Class, qui référe à la classe désirant utiliser une image de fond.


Merci encore. ++ Nexus

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
vendredi 4 avril 2008 à 09:29:45 | Re : Image interne a charger

Ombitious_Developper

Salut:

Franchement, je n'ai pas jetter un coup oeil sur la classe de DarkSidious, mais je pense qu'avec quelques modifications tu peux obtenir:

public class ImagePanel ... {
    public ImagePanel(Class clazz, int x, int y, int width, int height) {
       // Code
       // Tu changes la méthode "getClass()" par le nouveau paramètre clazz.

       File fImg = new File(clazz.getResource(file).toURI());

       // Autre code
    }
}


Dans la classe désirant avoir un fond:

public class DecoratedFrame extends JFrame {
    // Quelque part dans une méthode non statique
    ImagePanel imgPanel = new ImagePanel(getClass(), 0, 0,
                getWidth(), getHeight());
    // ou bien
    // ImagePanel imgPanel = new ImagePanel(DecoratedFrame.class,
    //                       0, 0, getWidth(), getHeight());

}



vendredi 4 avril 2008 à 11:41:14 | Re : Image interne a charger

mouchimouchi

Hello,
Maintenant j'obtient :    not valid for images created with createImage(producer)

Voici mon code dans la classe principale :
        String chemin = "/img/Collines.jpg";
        String url = this.getClass().getResource(chemin).toString();
        ImageLoader loader = new ImageLoader(url);
        Image img = loader.loadImage();
        Graphics g = img.getGraphics();
        JImagePanel pipi = new JImagePanel(img);
        pipi.paintComponent(g);
      
        jPanel2.add(pipi);
        jPanel2.updateUI();

La classe JImagePanel est ici : ,    http://www.javafr.com/codes/JIMAGEPANEL-PANEL-AFFICHANT-IMAGES-REDIMENSIONNEES-AVEC-MEME-ASPECT_42125.aspx
La classe ImageLoader est là : ici,     http://www.javafr.com/infomsg_CHARGER-IMAGE-SUR-ACTIONPERFORMED_1052257.aspx

Lorsque je regarde avec winrar le fichier .jar, je vois bien que le dossier "img" est à la racine.
Alors bon dieu bon dieu pourquoi l'image ne s'affiche pas correctement dans mon panel ????????

Merci pour vos conseil les mecs ( surtout Ombitious )
vendredi 4 avril 2008 à 12:01:31 | Re : Image interne a charger

Ombitious_Developper

Salut:

Est ce que ce message est apparu avec les nouvelles modifucations?



1 2

Cette discussion est classée dans : int, file, image, imagepanel, fimg


Répondre à ce message

Sujets en rapport avec ce message

redimensionnement de JPEG et EXIF [ par Neo3004 ] Je cherche une solution à un problème depuis un moment : <font face="Arial" si Besoin d'aide création jeu d'échecs [ par laura0813 ] Bonjour, Je suis en deuxième année de licence et j'ai un projet informatique à réaliser. C'est un jeu d'échecs sans intelligence artificielle gérant l Affichage et verification des points [ par JM13nouveau ] Bjr,je cherche à  charger et afficher une image prendre une droite sur cette image, verifier l'equation de cette droite , verifier des points appartie Convertir image couleur en niveaux de gris [ par antoine2468 ] Bonjour,Je cherche à tranformer une image couleur en niveaux de gris.Voici le début de mon code :import java.awt.image.Raster;import javax.media.jai.* commnet faire fonctionner mon code [ par jouj85 ] s'il vous plait pouvez vous m'aider a corriger mon code voila mon code /* * To change this template, choose Tools | Templates * and open th Faire un zoom net et rapide en java [ par alex10843 ] Bonjour tout le monde, j'essaye de faire depuis environs 1 mois un code permettant de faire un zoom sur une image. j'ai essayé : int width = (int) ( Upload d'image [ par Vincinho ] Bonjour tout le monde,Voila je dois faire une partie administration pour un site Internet qui permettra a l'administrateur de ce site de copier une im Paint, MiniPaint, charger/ouvrir une image dans la zone de dessin...Jpanel, JFileChooser [ par mel83160 ] Bonjour, j'essai de faire un miniPaint en Java. Il a actuellement de nombreuses fonct


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales