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 :

[Debutant(e)] Ecrire un .png dans un Graphics


Sujet :

2D Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut [Debutant(e)] Ecrire un .png dans un Graphics
    Bonjour,
    J essaie d'écrire dans un Graphics une Image en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
    Image image = toolkit.getImage("/home/lsidibe/projet/source/schema.jpg");
    g.drawImage(image,0,0,0,0,null);
    Mais cela ne fonctionne pas j ai le message


    img=sun.awt.motif.X11Image@bdab91
    infoflags=3
    x=0 y=0 w=747 h=599
    Uncaught error fetching image:
    java.lang.ArrayIndexOutOfBoundsException: 1
    at java.awt.image.PixelGrabber.setPixels(PixelGrabber.java:595) at sun.awt.image.ImageDecoder.setPixels(ImageDecoder.java:120)
    at sun.awt.image.JPEGImageDecoder.sendPixels(JPEGImageDecoder.java:118)
    at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
    at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:144)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:254)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    image fetch aborted or errored



    Quelqu'un pourrai m'aider svp

  2. #2
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    Est ce que tu es sur d'avoir un serveur X11 qui fonctionne sur ton serveur ?
    si non utilise la recherche avancée et regarde il existe des posts sur le forum sur ce type d'erreur
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  3. #3
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Bonjour,

    tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g.drawImage(image,0,0,0,0,null);
    qui veut dire que tu dessines ton image en position X==0, Y==0 et aussi de largeur==0 et de hauteur==0...

    ton problème vient de là...
    Snoop

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    j'avais deja essayé et ca marche pas

  5. #5
    Membre actif
    Avatar de narkotik
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 229
    Points
    229
    Par défaut
    le mieux ce serait comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(monImage, x, y, this);
    pourquoi se compliqué la vie quand on peut faire simple?
    (+mitch): nan mais nanar j'préfère mourir contre un platane apres un accident de voiture plutot que d'une rupture d'anévrisme devant mon ecran d'pc

  6. #6
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    Je pencherai plutot sur le fait qu'il ne trouve pas l'image que tu lui demande de dessiner ... mais pas sur
    Regarde a cet endroit
    PixelGrabber.html

    l'erreur qui t'es renvoyer vient soit du status() soit de ImageObserver.ABORT donc je serais toi je testerai le chemin de ton image avant de faire un drawImage();
    Les hommes naissent et demeurent libres et égaux en droits; les distinctions sociales ne peuvent être fondées que sur l'utilité commune
    [article 1er Declaration Universelle des Droits de l'Homme]
    www.baseball-grizzlys.com

  7. #7
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Ton image ne doit pas encore être chargée lorsque tu demandes de l'afficher.

    Tu peux charger ton image via un MediaTracker et sa méthode waitForID() ...

    Toine

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Pour preciser ce que disait Toine, voici un exemple :

    Pour charger l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    tracker= new MediaTracker(UnComponent);
    Image image= UnComponent.getImage("/home/lsidibe/projet/source/schema.jpg");
    tracker.addImage(image, 0);
    try {
         tracker.waitForID(0);
         } catch (InterruptedException e) {}

    Puis pour l'afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (image != null)
    g.drawImage(image,0, 0, 100, 200, this);
    Voila, ca te montre un peu le principe, bien sur les valeurs mises dans drawImage dependent de l'emplacement (x,y) du point de depart pour le positionnement de ton image, puis de sa taille (longeur, largeur)

    Bon courage

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    le coup de drawImage( image ,0,0, this) ne peut pas marcher car this correspondrait à l'objet d'écris par ma classe donc pas du bon type.

    J ai testé le chemin et c'est bien le bon mais j ai toujour

    img=sun.awt.motif.X11Image@9e29fb
    infoflags=64
    x=0 y=0 w=-1 h=-1
    image fetch aborted or errored

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Oui ok, ce n'est pas this qu'il faut mettre dans ce cas, mais l'objet qui est le ImageObserver de ton image.

    img=sun.awt.motif.X11Image@9e29fb
    infoflags=64
    x=0 y=0 w=-1 h=-1
    image fetch aborted or errored
    Apparament il trouve une largeur et une hauteur de -1 pour ton image, essaye de lui specifié une taille avec drawImage(image,x,y,longeur,largeur, ImageObserver).

    Sinon, est tu sur d'avoir assez de place pour dessiner ton image?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    merci mush_H ca a fonctionné j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
    Frame lab=new Frame();
    MediaTracker tracker= new MediaTracker(lab);
    mage image= toolkit.getImage("/home/lsidibe/projet/source/logo.png");
    tracker.addImage(image, 0);
    try {
    	tracker.waitForID(0);
    } catch (InterruptedException e) {}
     
     if (image!=null) 
    	g.drawImage(image,0,0,null);
    merci encore à tous

  12. #12
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    merci mush_H d'avoir explicité mes propos

    Toine

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    De rien crips, si je peux aider
    (un petit résolu pour ce post serait bien si tout fonctionne correctement maintenant crisp )

    Et Toine, je sentais qu'il y avait besoin d'un peu plus d'éxplication, mais ça ne diminue en rien la qualité de ta réponse .


    à plus

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

Discussions similaires

  1. [Debutant(e)] changer la langue dans eclipse
    Par omega dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 16/03/2004, 16h47
  2. [Debutant][Struts] Pb de forward dans jsp
    Par muim dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/02/2004, 11h02
  3. Réponses: 6
    Dernier message: 23/09/2003, 19h12
  4. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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