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

  FORUM HardWare.fr
  Programmation
  Java

  Lire la hauteur et la largeur d'une image.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lire la hauteur et la largeur d'une image.

n°692798
Mara's dad
Yes I can !
Posté le 05-04-2004 à 16:04:05  profilanswer
 

Bonjour,
 
J'utilise Java 1.3.1 (Impossible d'utiliser autre chose, pas la peine d'insister ! ! !)
 
Je cherche donc a récupérer la taille en pixel d'une image.
 
Le seul moyen que j'ai trouvé, c'est ça :
 

Image aRealImg = Toolkit.getDefaultToolkit().createImage( b );
Container cnt = new Container();
int w;
while( ( w = aRealImg.getWidth( cnt ) ) < 0 );
int h = aRealImg.getHeight( cnt ) ) < 0 );


 
Sachant que b est un byte[] dont je suis presque quazi certain (mais c'est pas la question) que c'est une image GIF, JPEG ou PNG.
 
La boucle sur getWidth(), c'est parce-qu'au premier appel, ça me retourne -1. Genre le truc il lui faut un moment avant de démarrer...
 
Bref, c'est tout ce que j'ai pu trouver pour l'instant.
Bien sûr je trouve ça cradissime, alors si une bonne âme avait un bon tuyau d'arrosage histoire de nettoyer un peu ce code, se serait surper gentil :D
 
Au fait, vous aurrez compris, le 'Container', j'en ai rien à faire. C'est juste pour getWidth() et getHeight() qui veulent un 'ImageObserver'. Je fais une appli WEB, j'ai pas d'interface graphique :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 05-04-2004 à 16:04:05  profilanswer
 

n°692802
lorill
Posté le 05-04-2004 à 16:09:00  profilanswer
 

Code :
  1. ImageIcon i = new ImageIcon(b);
  2. i.getWidth();
  3. i.getHeight();

n°692815
Mara's dad
Yes I can !
Posté le 05-04-2004 à 16:21:19  profilanswer
 

Yo, merci !
Je savais bien qu'il suffisait de demander :D
 
Sauf que c'est getIconWidth() et getIconHeight(), mais bon on va pas chipoter.
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°692832
nraynaud
lol
Posté le 05-04-2004 à 16:36:51  profilanswer
 

Mara's dad a écrit :

Yo, merci !
Je savais bien qu'il suffisait de demander :D
 
Sauf que c'est getIconWidth() et getIconHeight(), mais bon on va pas chipoter.
 
 

toi tu vas avoir des surprises ...


---------------
trainoo.com, c'est fini
n°692836
Mara's dad
Yes I can !
Posté le 05-04-2004 à 16:39:17  profilanswer
 

nraynaud a écrit :

toi tu vas avoir des surprises ...


 :??:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°692842
lorill
Posté le 05-04-2004 à 16:43:36  profilanswer
 

genre ca marchera pas sans interface graphique ?

n°692854
Mara's dad
Yes I can !
Posté le 05-04-2004 à 16:49:30  profilanswer
 

lorill a écrit :

genre ca marchera pas sans interface graphique ?


Heu, là ça marche très bien sur mon serveur tomcat 4.1...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°692892
lorill
Posté le 05-04-2004 à 17:03:55  profilanswer
 

Mara's dad a écrit :


Heu, là ça marche très bien sur mon serveur tomcat 4.1...


je sais pas si c'est le cas pour ImageIcon, mais sous unix, quand X n'est pas installé, certaines classes d'awt renvoient en erreur.

n°692912
nraynaud
lol
Posté le 05-04-2004 à 17:11:32  profilanswer
 

lorill a écrit :

genre ca marchera pas sans interface graphique ?

je pense plutôt qu'il risque d'avoir la taille de l'icone d'attente de chargement s'il le fait trop tôt ...


---------------
trainoo.com, c'est fini
n°692931
lorill
Posté le 05-04-2004 à 17:20:16  profilanswer
 

ah, parce que le constructeur d'ImageIcon rend la main avant le chargement ?? comment ils peuvent renvoyer une exception si l'image est foireuse alors ?

mood
Publicité
Posté le 05-04-2004 à 17:20:16  profilanswer
 

n°692949
the real m​oins moins
Posté le 05-04-2004 à 17:29:52  profilanswer
 

lorill a écrit :


je sais pas si c'est le cas pour ImageIcon, mais sous unix, quand X n'est pas installé, certaines classes d'awt renvoient en erreur.

-Djava.awt.headless=true -Dsun.java2d.fontpath=/usr/java1.4.1/jre/lib/fonts
 
 
(bon d'un autre coté le headless c'est à partir d'1.4 ...)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°693019
Mara's dad
Yes I can !
Posté le 05-04-2004 à 18:10:49  profilanswer
 

Bon, les Experts, z'êtes bien gentil, mais moi je fais comment alors :??:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°693031
benou
Posté le 06-04-2004 à 00:12:02  profilanswer
 

lorill a écrit :


je sais pas si c'est le cas pour ImageIcon, mais sous unix, quand X n'est pas installé, certaines classes d'awt renvoient en erreur.


je confirme ... et c'est bien chiant ...
 
en jdk1.4 y a plus ce problème quand on se sert de java.imageio

n°693034
benou
Posté le 06-04-2004 à 00:13:57  profilanswer
 

Mara's dad a écrit :

Bon, les Experts, z'êtes bien gentil, mais moi je fais comment alors :??:


perso pour ce genre de besoin moi j'ai utilisé JAI ... ca fait un peu massue pour écraser un parasite unicellulaire, mais bon ...
 
et puis le problème awt et serveur X se pose toujours :/

n°693044
the real m​oins moins
Posté le 06-04-2004 à 00:28:42  profilanswer
 

y'a des ptites libs sympa qui sont compatible 1.3
j'utilisais ... euh merde oublié le nom.... qui etait orientée analyse d'image mais avec un codec gif integré ..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°693060
benou
Posté le 06-04-2004 à 00:51:27  profilanswer
 

the real moins moins a écrit :

y'a des ptites libs sympa qui sont compatible 1.3


 :o JAI c'est gros, JAI c'est mieux :o

n°694207
Mara's dad
Yes I can !
Posté le 06-04-2004 à 22:15:30  profilanswer
 

Bon, y'en a marre de ce JAVA et ses 10 000 000 de classes moins bien documentées les unes que les autres :fou: :fou: :fou:
 
Comme je sais si bien le faire, je reprends le problème à la base.
Je vais me faire ma propre classe !
 
C'est pas la mer à boire, y'a que 3 types de fichiers à prendre en compte : PNG, GIF et JPEG.
 
J'ai commencé à regarder, et c'est super simple. Tous les formats de fichiers ont un header qui fourni des infos comme :
1- Une signature qui permet de vérifier le type de fichier.
2- La largeur de l'image en pixels.
3- La hauteur de l'image en pixels.
 
Et là je retombe dans les méandres de JAVA :fou:
 
J'ai donc un byte[] qui contient un fichier binaire.
 
Comment je fais pour transformer, par exemple pour le PNG, les 4 octets d'offset 16, 17, 18 et 19 en un nombre manipulable :??:  :??:  :??:
 
J'ai essayé 'stupidement' de construire une chaîne hexa et ensuite de convertir cette chaîne en int, mais c'est tombé à l'eau parce-que les bytes sont signé ou un truc du genre...
 
Bref, c'est un truc que je saurais faire dans tous les languages que je connais SAUF java...
 
C'est quoi le truc, PLEASE ? ? ?


Message édité par Mara's dad le 06-04-2004 à 22:17:15

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694232
benou
Posté le 06-04-2004 à 23:00:17  profilanswer
 

tab[19] + tab[18] * 256 + tab[17] * 256 * 256 + tab[17] * 256 * 256 * 256 [:spamafote]

n°694240
Mara's dad
Yes I can !
Posté le 06-04-2004 à 23:06:47  profilanswer
 

J'y ai pensé, mais le problème, c'est que les bytes ne vont pas de 0 à 255. Ils sont signés...
Faut donc défaire la complétion à 9 et ensuite fire comme tu dis.
 
Je me dis qu'il doit quand même y avoir plus simple...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694639
Mara's dad
Yes I can !
Posté le 07-04-2004 à 14:14:28  profilanswer
 

Ok !
Vala une tite classe qui vérifie le format des GIF, JPEG et PNG et qui retourne la largeur et la hauteur en Pixels !
 

Code :
  1. public class ImageInformation
  2. {
  3.     private int _nWidth;
  4.     private int _nHeight;
  5.     /**
  6.      * Creates a new ImageInformation object.
  7.      */
  8.     public ImageInformation(  )
  9.     {
  10.     }
  11.     /**
  12.      * Creates a new ImageInformation object.
  13.      *
  14.      * @param nWidth DOCUMENT ME!
  15.      * @param nHeight DOCUMENT ME!
  16.      */
  17.     private ImageInformation( int nWidth, int nHeight )
  18.     {
  19.         _nWidth = nWidth;
  20.         _nHeight = nHeight;
  21.     }
  22.     /**
  23.      * @return
  24.      */
  25.     public int getHeight(  )
  26.     {
  27.         return _nHeight;
  28.     }
  29.     /**
  30.      * @return
  31.      */
  32.     public int getWidth(  )
  33.     {
  34.         return _nWidth;
  35.     }
  36.     /**
  37.      * @param i
  38.      */
  39.     public void setHeight( int i )
  40.     {
  41.         _nHeight = i;
  42.     }
  43.     /**
  44.      * @param i
  45.      */
  46.     public void setWidth( int i )
  47.     {
  48.         _nWidth = i;
  49.     }
  50.     /**
  51.      * Return an ImageInformation for a PNG image or null
  52.      *
  53.      * @param buffer The image bytes.
  54.      *
  55.      * @return ImageInformation
  56.      */
  57.     public static ImageInformation getInfoForPNG( byte[] buffer )
  58.     {
  59.         // First check for the PNG signature
  60.         int[] signature =
  61.         {
  62.             0x0089,
  63.             0x0050,
  64.             0x004E,
  65.             0x0047,
  66.             0x000D,
  67.             0x000A,
  68.             0x001A,
  69.             0x000A
  70.         };
  71.         int i = 0;
  72.         while( i < signature.length )
  73.         {
  74.             if( ( buffer[i] & signature[i] ) != signature[i] )
  75.             {
  76.                 return null;
  77.             }
  78.             i++;
  79.         }
  80.         // The read Width
  81.         int nWidth = 0;
  82.         for( i = 0; i < 4; i++ )
  83.         {
  84.             nWidth = nWidth + ( ( 0x00FF & buffer[i + 16] ) * ( int ) Math.pow( 256, 3 - i ) );
  85.         }
  86.         // The read Height
  87.         int nHeight = 0;
  88.         for( i = 0; i < 4; i++ )
  89.         {
  90.             nHeight = nHeight + ( ( 0x00FF & buffer[i + 20] ) * ( int ) Math.pow( 256, 3 - i ) );
  91.         }
  92.         return new ImageInformation( nWidth, nHeight );
  93.     }
  94.     /**
  95.      * Return an ImageInformation for a GIF image or null
  96.      *
  97.      * @param buffer The image bytes.
  98.      *
  99.      * @return ImageInformation
  100.      */
  101.     public static ImageInformation getInfoForGIF( byte[] buffer )
  102.     {
  103.         // First check for the GIF signature
  104.         int[] signature =
  105.         {
  106.             0x0047,
  107.             0x0049,
  108.             0x0046,
  109.         };
  110.         int i = 0;
  111.         while( i < signature.length )
  112.         {
  113.             if( ( buffer[i] & signature[i] ) != signature[i] )
  114.             {
  115.                 return null;
  116.             }
  117.             i++;
  118.         }
  119.         // The read Width
  120.         int w1 = ( ( int ) buffer[6] & 0xff ) | ( buffer[6] & 0x80 );
  121.         int w2 = ( ( int ) buffer[7] & 0xff ) | ( buffer[7] & 0x80 );
  122.         int h1 = ( ( int ) buffer[8] & 0xff ) | ( buffer[8] & 0x80 );
  123.         int h2 = ( ( int ) buffer[9] & 0xff ) | ( buffer[9] & 0x80 );
  124.         int nWidth = w1 + ( w2 << 8 );
  125.         int nHeight = h1 + ( h2 << 8 );
  126.         return new ImageInformation( nWidth, nHeight );
  127.     }
  128.     /**
  129.      * Return an ImageInformation for a JPEG image or null
  130.      *
  131.      * @param buffer The image bytes.
  132.      *
  133.      * @return ImageInformation
  134.      */
  135.     public static ImageInformation getInfoForJPEG( byte[] buf )
  136.     {
  137.  // check for "magic" header
  138.  int count = buf.length;
  139.  if( count < 2 )
  140.  {
  141.   return ( null );
  142.  }
  143.  if( ( buf[0] ) != ( byte ) 0xFF || ( buf[1] ) != ( byte ) 0xD8 )
  144.  {
  145.   return ( null );
  146.  }
  147.  int nWidth = 0;
  148.  int nHeight = 0;
  149.  boolean hasDims = false;
  150.  boolean hasComment = false;
  151.  int ch = 0;
  152.  count = 2;
  153.  while( ch != 0xDA && ! hasDims )
  154.  {
  155.   /* Find next marker (JPEG markers begin with 0xFF) */
  156.   while( ch != 0xFF )
  157.   {
  158.    ch = ( buf[count++] & 0x00FF );
  159.   }
  160.   /* JPEG markers can be padded with unlimited 0xFF's */
  161.   while( ch == 0xFF )
  162.   {
  163.    ch = ( buf[count++] & 0x00FF );
  164.   }
  165.   /* Now, ch contains the value of the marker. */
  166.   int length = 256 * ( buf[count++] & 0x00FF );
  167.   length += ( buf[count++] & 0x00FF );
  168.   if( length < 2 )
  169.   {
  170.    return ( null );
  171.   }
  172.   /* Now, length contains the length of the marker. */
  173.   if( ch >= 0xC0 && ch <= 0xC3 )
  174.   {
  175.    count++;
  176.    nHeight = 256 * ( buf[count++] & 0x00FF );
  177.    nHeight += ( buf[count++] & 0x00FF );
  178.    nWidth = 256 * ( buf[count++] & 0x00FF );
  179.    nWidth += ( buf[count++] & 0x00FF );
  180.    count += length - 2 - 5;
  181.    hasDims = true;
  182.   }
  183.   else
  184.   {
  185.    // just skip marker
  186.    count += length - 2;
  187.   }
  188.  }
  189.         return new ImageInformation( nWidth, nHeight );
  190.     }
  191. }


 
Faut tout faire soit même ...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694644
the real m​oins moins
Posté le 07-04-2004 à 14:16:13  profilanswer
 

[:bien]
(je virerais juste les setters de ImageInformation;))


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°694658
benou
Posté le 07-04-2004 à 14:45:10  profilanswer
 

drapal !
 
ca pourait me servir [:meganne]
 
juste pour être sûr. La méthode que tu as utilisée est valide pour tos les formats de GIF et jpeg ?


---------------
ma vie, mon oeuvre - HomePlayer
n°694695
Mara's dad
Yes I can !
Posté le 07-04-2004 à 15:18:26  profilanswer
 

-- : Yes, je vais nettoyer le code :D
 
benou : J'ai pas testé tous les formats GIFS, mais c'est basé sur la spec du dernier format GIF89a qui est identique que le GIF87a pour largeur et hauteur. Pour le JPEG, je l'ai testé sur une image issue de PaintShopPro ( un JFIF donc ) et sur une image venant d'un appareil photo qui contient plein de headers en plus comment des commentaires et même une miniature.
De plus, le code de base pour GIF et JPEG n'est pas de moi :D je l'ai trouvé là : http://www.mail-archive.com/cocoon [...] 26086.html
 
Si t'as 1 heure, je reviens avec un code épuré des setters et plus homogène dans sa manière de traiter les bytes de manière à rendre le code plus compréhensible...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694727
benou
Posté le 07-04-2004 à 15:43:23  profilanswer
 

Mara's dad a écrit :


Si t'as 1 heure, je reviens avec un code épuré des setters et plus homogène dans sa manière de traiter les bytes de manière à rendre le code plus compréhensible...


génial !
 
Je sais qu'il y a un format de jpeg spécific au noir&blanc (je le sais pacre que ce type de jpeg passe pas sur les tel i-mode [:ddr555]). Faudrait voir si les headers sont identiques ...


---------------
ma vie, mon oeuvre - HomePlayer
n°694761
Mara's dad
Yes I can !
Posté le 07-04-2004 à 16:07:59  profilanswer
 

Bon cette fois c'est la bonne :D
 

Code :
  1. public final class ImageInformation
  2. {
  3.     private static final int FFh = 0x000000ff;
  4.     private static final byte[] SIGNATURE_PNG =
  5.     {
  6.         ( byte ) 0x89,
  7.         ( byte ) 0x50,
  8.         ( byte ) 0x4E,
  9.         ( byte ) 0x47,
  10.         ( byte ) 0x0D,
  11.         ( byte ) 0x0A,
  12.         ( byte ) 0x1A,
  13.         ( byte ) 0x0A
  14.     };
  15.     private static final byte[] SIGNATURE_GIF =
  16.     {
  17.         ( byte ) 0x47,
  18.         ( byte ) 0x49,
  19.         ( byte ) 0x46
  20.     };
  21.     private static final byte[] SIGNATURE_JPEG =
  22.     {
  23.         ( byte ) 0xFF,
  24.         ( byte ) 0xD8
  25.     };
  26.     private int _nWidth;
  27.     private int _nHeight;
  28.     /**
  29.      * Creates a new ImageInformation object.
  30.      *
  31.      * @param nWidth : Image width
  32.      * @param nHeight : Image Height
  33.      */
  34.     private ImageInformation( int nWidth, int nHeight )
  35.     {
  36.         _nWidth = nWidth;
  37.         _nHeight = nHeight;
  38.     }
  39.     /**
  40.      * @return int : width
  41.      */
  42.     public int getWidth(  )
  43.     {
  44.         return _nWidth;
  45.     }
  46.     /**
  47.      * @return int : height
  48.      */
  49.     public int getHeight(  )
  50.     {
  51.         return _nHeight;
  52.     }
  53.     /**
  54.      * Return an ImageInformation for a PNG image or null
  55.      *
  56.      * @param buffer The image bytes.
  57.      *
  58.      * @return ImageInformation
  59.      */
  60.     public static ImageInformation getInfoForPNG( byte[] buffer )
  61.     {
  62.         // First check for the PNG signature
  63.         if( !checkSignature( buffer, SIGNATURE_PNG ) )
  64.         {
  65.             return null;
  66.         }
  67.         int i;
  68.         // The read Width
  69.         int nWidth = ( ( buffer[16] & FFh ) << 24 ) | ( ( buffer[17] & FFh ) << 16 ) | ( ( buffer[18] & FFh ) << 8 ) | ( buffer[19] & FFh );
  70.         // The read Height
  71.         int nHeight = ( ( buffer[20] & FFh ) << 24 ) | ( ( buffer[21] & FFh ) << 16 ) | ( ( buffer[22] & FFh ) << 8 ) | ( buffer[23] & FFh );
  72.         return new ImageInformation( nWidth, nHeight );
  73.     }
  74.     /**
  75.      * Return an ImageInformation for a GIF image or null
  76.      *
  77.      * @param buffer The image bytes.
  78.      *
  79.      * @return ImageInformation
  80.      */
  81.     public static ImageInformation getInfoForGIF( byte[] buffer )
  82.     {
  83.         // First check for the GIF signature
  84.         if( !checkSignature( buffer, SIGNATURE_GIF ) )
  85.         {
  86.             return null;
  87.         }
  88.         // The read Width
  89.         int nWidth = ( buffer[6] & FFh ) | ( ( buffer[7] & FFh ) << 8 );
  90.         // The read Height
  91.         int nHeight = ( buffer[8] & FFh ) | ( ( buffer[9] & FFh ) << 8 );
  92.         return new ImageInformation( nWidth, nHeight );
  93.     }
  94.     /**
  95.      * Return an ImageInformation for a JPEG image or null
  96.      *
  97.      * @param buffer The image bytes.
  98.      *
  99.      * @return ImageInformation
  100.      */
  101.     public static ImageInformation getInfoForJPEG( byte[] buffer )
  102.     {
  103.         // First check for the JPEG signature
  104.         if( !checkSignature( buffer, SIGNATURE_JPEG ) )
  105.         {
  106.             return null;
  107.         }
  108.         int nWidth = 0;
  109.         int nHeight = 0;
  110.         boolean hasDims = false;
  111.         int ch = 0;
  112.         int count = 2;
  113.         while( ch != 0xDA && !hasDims )
  114.         {
  115.             /* Find next marker (JPEG markers begin with 0xFF) */
  116.             while( ch != FFh )
  117.             {
  118.                 ch = ( buffer[count++] & FFh );
  119.             }
  120.             /* JPEG markers can be padded with unlimited 0xFF's */
  121.             while( ch == FFh )
  122.             {
  123.                 ch = ( buffer[count++] & FFh );
  124.             }
  125.             /* Now, ch contains the value of the marker. */
  126.             int length = 256 * ( buffer[count++] & FFh );
  127.             length += ( buffer[count++] & FFh );
  128.             if( length < 2 )
  129.             {
  130.                 return ( null );
  131.             }
  132.             /* Now, length contains the length of the marker. */
  133.             if( ch >= 0xC0 && ch <= 0xC3 )
  134.             {
  135.                 count++;
  136.                 nHeight = ( ( buffer[count++] & FFh ) << 8 ) | ( buffer[count++] & FFh );
  137.                 nWidth = ( ( buffer[count++] & FFh ) << 8 ) | ( buffer[count++] & FFh );
  138.                 count += length - 2 - 5;
  139.                 hasDims = true;
  140.             }
  141.             else
  142.             {
  143.                 // just skip marker
  144.                 count += length - 2;
  145.             }
  146.         }
  147.         return new ImageInformation( nWidth, nHeight );
  148.     }
  149.     /**
  150.      * Check the signature of an immage buffer
  151.      *
  152.      * @param signature : byte array
  153.      * @param buffer : byte array
  154.      *
  155.      * @return boolean
  156.      */
  157.     private static boolean checkSignature( byte[] buffer, byte[] signature )
  158.     {
  159.         // Check ~approximate~ minimum buffer size
  160.         if( buffer.length < 32 )
  161.         {
  162.             return false;
  163.         }
  164.         // Check signature
  165.         for( int i = 0; i < signature.length; i++ )
  166.         {
  167.             if( buffer[i] != signature[i] )
  168.             {
  169.                 return false;
  170.             }
  171.         }
  172.         return true;
  173.     }
  174. }


 
Specs pour GIFnnx : http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/GIF89a.txt
Specs pour PNG : http://www.w3.org/TR/REC-png.html#C.IHDR
Specs pour JPEG : http://www.funducode.com/freec/Fil [...] rmat3b.htm
 
Pour tes Jpegs noir&blanc je pense pas que le problème soit le format du fichier, mais plutôt sur les algo de compression/décompression des données de l'image dont je n'ai rien à faire :D
 
Si vous trouvez des bugs, n'hésitez pas à me prévenir, merci.
 
EDIT : Modif du code pour remplacer le multiplications par 256 par des 'décallages' de les additions par des 'OR'.
Je ne sais pas si c'est plus optimisé en Java, mais en tout cas, c'est plus propre :D


Message édité par Mara's dad le 07-04-2004 à 19:28:57

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694772
the real m​oins moins
Posté le 07-04-2004 à 16:17:33  profilanswer
 

on dirait du C :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°694849
Mara's dad
Yes I can !
Posté le 07-04-2004 à 17:06:50  profilanswer
 

Yes :D
 
C'est clair qu'on voit tout de suite le language pas du tout adapté à ce genre d'accrobaties...
 
J'aurai dû transformer mon tableau de bytes en un Document XML et traiter le problème en XSL-T :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°694850
the real m​oins moins
Posté le 07-04-2004 à 17:07:32  profilanswer
 

je parle du code style :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°694858
benou
Posté le 07-04-2004 à 17:10:14  profilanswer
 

Mara's dad a écrit :

C'est clair qu'on voit tout de suite le language pas du tout adapté à ce genre d'accrobaties...


bha, c'est la même syntaxe que le C ... le seul truc c'est les bye signés (quelle connerie ! :/)


---------------
ma vie, mon oeuvre - HomePlayer
n°694882
nraynaud
lol
Posté le 07-04-2004 à 17:27:48  profilanswer
 

benou a écrit :

bye signés

ciao non-signé.


---------------
trainoo.com, c'est fini
n°694884
benou
Posté le 07-04-2004 à 17:29:47  profilanswer
 

nraynaud a écrit :

ciao non-signé.


:o
 
( [:netbios] )


---------------
ma vie, mon oeuvre - HomePlayer
n°695050
Mara's dad
Yes I can !
Posté le 07-04-2004 à 19:29:23  profilanswer
 

Maj du code, voir EDIT...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°700125
pascal34
one point !
Posté le 15-04-2004 à 13:52:42  profilanswer
 


Les méthodes pour obtenir largeur et heuteur d'une image renvoient -1 tant que l'image n'est pas chargée.
 
Il faut utiliser un MediaTracker pour charger l'image.
On peut se mettre en attente jusqu'à ce que l'image soit chargée et après miracle ...

n°700212
chapi456
Posté le 15-04-2004 à 14:58:00  profilanswer
 

C style forever ...

mood
Publicité
Posté le   profilanswer
 


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

  Lire la hauteur et la largeur d'une image.

 

Sujets relatifs
calque et image[PHP] Help changement image
Dreamweaver, image qui refuse de s'afficher sous IE...!Lire fichier HTML avec DOM L2 (HTML)
[html] Un liseré autour des image liensImage de fond dans une Frame
Empecher le parcourir un repertoire image?Lire un fichier temporaire
Lire les fichiers de logGestion d'image sans passer par des fichiers.
Plus de sujets relatifs à : Lire la hauteur et la largeur d'une image.


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)