Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2727 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  graph 2d en java (soucis avec extends de java.awt.Image)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

graph 2d en java (soucis avec extends de java.awt.Image)

n°342356
chrisbk
-
Posté le 25-03-2003 à 11:14:19  profilanswer
 

bon, dans le cadre de la cause et afin d'atteindre des resultats tant voulu qu'escompter, je dois pouvoir etre en mesure de dessiner rapidement des formes geometriques a l'ecran.
 
Le probleme est que je suis limite a la JVM 1.1.8 (ou anterieur), et que la classe Graphics disponible se chargeant d'habitude de ce genre de sport ne correspond pas a mes besoins par manque de fonctionnalite.  
 
Ma question donc : comment faire du graph 2d rapide ? Pour le moment je plotte mes pixels un a un via BufferedImage::setPixel mais bon, un appel de fonction par pixel c'est pas le mieux, quand meme (la machine cible n'etant pas exactement un monstre de puissance, faire l'economie de l'appel de fonction par pixel ne me parait pas etre inutile) .
 
Des idees / tactiques ?
 
thks


Message édité par chrisbk le 30-04-2003 à 13:36:18
mood
Publicité
Posté le 25-03-2003 à 11:14:19  profilanswer
 

n°342368
bobuse
Posté le 25-03-2003 à 11:28:24  profilanswer
 

En fait j'ai du mal a comprendre pkoi tu veux(peux) pas utiliser Graphics ?


Message édité par bobuse le 25-03-2003 à 11:28:43

---------------
get amaroK plugin
n°342370
chrisbk
-
Posté le 25-03-2003 à 11:32:14  profilanswer
 

bobuse a écrit :

En j'ai du mal a comprendre pkoi tu veux pas utiliser Graphics ?


 
ca n'est pas que je ne veux pas, c'est que je ne peux pas. Le seul Graphics dont je dispose est celui de la JVM 1.1.8, qui est tres limite en terme de fonctionnalite (rien a voir avec celui du Graphics2D. Mais vu que ce dernier n'est dispo qu'a partir de la JVM 1.2 et que je dois rester a la 1.1.8, ben tant pis).
 
Par exemple le graphics ne te permet que de remplir des formes avec une couleur unie tandis que moi j'ai besoin de degrade, alpha blending et meme peut etre de l'anti aliasing => Graphics KO  
 
(et par ailleurs, je trouve qu'il donne de sales resultats)
 
edit : fautes + desole pour le manque d'accent mais sur clavier allemand c vraiment la misere...


Message édité par chrisbk le 25-03-2003 à 11:33:05
n°342372
bobuse
Posté le 25-03-2003 à 11:38:01  profilanswer
 

chrisbk a écrit :


 
ca n'est pas que je ne veux pas, c'est que je ne peux pas. Le seul Graphics dont je dispose est celui de la JVM 1.1.8, qui est tres limite en terme de fonctionnalite (rien a voir avec celui du Graphics2D. Mais vu que ce dernier n'est dispo qu'a partir de la JVM 1.2 et que je dois rester a la 1.1.8, ben tant pis).
 
Par exemple le graphics ne te permet que de remplir des formes avec une couleur unie tandis que moi j'ai besoin de degrade, alpha blending et meme peut etre de l'anti aliasing => Graphics KO  
 
(et par ailleurs, je trouve qu'il donne de sales resultats)
 
edit : fautes + desole pour le manque d'accent mais sur clavier allemand c vraiment la misere...


Ha ouais ... et ya pas moyen de récupérer un jar d'un ersatz (et hop du deutsch) de Graphics2D ? remarques c'est peut-etre ce que tu cherches :D


---------------
get amaroK plugin
n°342375
chrisbk
-
Posté le 25-03-2003 à 11:43:08  profilanswer
 

je viens de me rapeller de la lib openPTC de ma folle jeunesse en 2d, elle avait un port java, vais voir ca de plus pres [:meganne]

n°378023
chrisbk
-
Posté le 30-04-2003 à 12:38:13  profilanswer
 

grml, qqun a deja derivé sa propre classe de java.awt.Image ?

n°378104
chrisbk
-
Posté le 30-04-2003 à 13:35:47  profilanswer
 

je m'explique :
 
pour le moment je trace dans un tableau de int[]. bon. Pour l'affichagem je recopie ce tableau dans un Image, puis je balance a l'ecran via un Graphics.drawImage(..)
le truc, c que la recopie dans Image prends environ 350ms, soit bpc trop. Me suis donc dit, petit malin, plutot que de recopier dans un Image je me fais ma propre classe Image et j'envoie celle ci au graphics.  
Vala donc le resultat :
 
 

Code :
  1. class TestImage extends java.awt.Image
  2.     {
  3.         public int getWidth(ImageObserver observer)
  4.         {
  5.             System.out.println("GetWidth" );
  6.             if (observer!=null)
  7.                 System.out.println("Observer present" );
  8.             return 10;
  9.         }
  10.        
  11.         public int getHeight(ImageObserver observer)
  12.         {
  13.             System.out.println("GetHeight" );
  14.             if (observer!=null)
  15.                 System.out.println("Observer present" );
  16.            
  17.             return 10;
  18.         }
  19.        
  20.         public ImageProducer getSource()
  21.         {
  22.             System.out.println("GetSource" );
  23.             getHeight(null);
  24.             return null;
  25.         }
  26.        
  27.         public Graphics getGraphics()
  28.         {
  29.             System.out.println("GetGraphics" );
  30.             return null;
  31.         }
  32.        
  33.         public Object getProperty(String name, ImageObserver observer)
  34.         {
  35.             System.out.println("GetProperty" );
  36.             return null;
  37.         }
  38.        
  39.        
  40.         public Image getScaledInstance(int width,int height,int hints)
  41.         {
  42.             System.out.println("GetScaledInstance" );
  43.             return null;
  44.         }
  45.        
  46.         public void flush()
  47.         {
  48.             System.out.println("Flush" );
  49.         }
  50.        
  51.         public String toString()
  52.         {
  53.             System.out.println("toString" );
  54.             return "toto";
  55.         }
  56.        
  57.          public boolean equals(Object obj)
  58.          {
  59.              System.out.println("equals" );
  60.              return super.equals(obj);
  61.          }
  62.     }


 
(le but etant pour le moment de voir quelles sont les fonctions que Graphics appelent lors du drawImage(...)
 
A l'exec, je vois que seules les fonctions getHeight/getWidth sont appelees, et apres drawImage retourne en renvoyant false. Ca me fait les pieds. La javadoc me dit a ce propos :
 

Citation :

If the image has not yet been completely loaded, then drawImage returns false. As more of the image becomes available, the process that draws the image notifies the specified image observer.


 
ce qui me fait aussi les pieds. Bref, qu'est ce qu'il se passe ? qu'est ce qu'ils veulent dire par "completely loaded" ? Pkoi ma fausse image n'est pas consideree comme "completely loaded" ?
 

n°378563
souk
Tourist
Posté le 30-04-2003 à 16:10:53  profilanswer
 

si je me trompe pas, Image est une classe abstraite, donc y a surement mille choses a implementer pour pouvoir afficher koi ke ce soit :hello:

n°378573
chrisbk
-
Posté le 30-04-2003 à 16:12:00  profilanswer
 

souk a écrit :

si je me trompe pas, Image est une classe abstraite, donc y a surement mille choses a implementer pour pouvoir afficher koi ke ce soit :hello:  


 
beh non justement, j'ai repris toute les methodes donnees dans la javadoc (?). Et vu que je peux instancier ma classe c donc que je n'en ait oublié aucune (abstract du moins)
 
(thks pour le up quand meme :D)

n°378827
souk
Tourist
Posté le 30-04-2003 à 19:26:29  profilanswer
 

ah vi... j'ai encore ete stupide sur skou la :D
sorry  :lol:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  graph 2d en java (soucis avec extends de java.awt.Image)

 

Sujets relatifs
[java/vb] je cherche un equivalent de CompressString()[JAVA]expression arithmetique parenthesee +arbre binaire
redimentionner une image[java] un petit pb entre String et Byte
[PHP]comment mettre une image en arrière plan?OnMouseOver -> afficher une autre image ? [RESOLU]
[Java] Client FTP [Résolu]Imprimer du PDF avec Java (méthode print de l'AWT)
telecharger une image jpg au lieu de l'affichertaille max d'une chaine de caractère en java?
Plus de sujets relatifs à : graph 2d en java (soucis avec extends de java.awt.Image)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR