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

Entrée/Sortie Java Discussion :

Connaître les dimensions d'une image dans un zip


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 37
    Points : 25
    Points
    25
    Par défaut Connaître les dimensions d'une image dans un zip
    Bonjour,

    J'ai une image dans un zip et j'aimerais savoir s'il est possible de connaître ses dimensions, sans décompresser le zip ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Ma foi, il est possible de n'extraire que l'image. Et si c'est un format connu de Java, il est possible de n'extraire que jusqu'à l'a position des métadonnées de dimension, et s'arrêter là.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 37
    Points : 25
    Points
    25
    Par défaut
    J'ai pas bien compris ta réponse, peux-tu être plus explicite ?

    Merci d'avance.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 998
    Points
    7 998
    Par défaut
    Bonjour,

    Cela signifie que si tu ne décompresses pas l'image d'une manière ou d'une autre, tu ne pourras jamais obtenir ses caractéristiques.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Ce que je voulais dire, c'est que :
    - Si on ne s'intéresse qu'aux images, on n'est pas obligé de décompresser le reste. Notamment, on peut se contenter de décompresser un seul fichier à la fois. D'ailleurs Java ne fournit pas d'outils pour décompresser la totalité d'un .zip automatiquement.

    - Si on ne s'occupe que d'images gérées par Java ImageIO, alors il peut lire leurs dimensions sans regarder tout le fichier, seulement le début. Il est donc possible de ne décompresser que le début de chaque fichier image, ce que l'on appelle les headers.

  6. #6
    Membre habitué Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    @radovan aurais-tu trouvé une solution à ton problème? je rencontre le même problème et je ne sais pas vraiment comment m'y prendre. Je ne cherche pas forcément un bout de code mais plutôt une méthodologie.

    Merci.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Ben, celle que j'ai donnée.

    - Comme d'habitude avec les .zip, utiliser ZipInputStream.
    - Comme tu ne t'intéresses qu'à un seul fichier, tu fais du getNextEntry() jusqu'à trouver le bon.
    - Le ZipInputStream est donc un InputStream qui lit les données de l'image. Il est possible de l'utiliser comme entrée d'un ImageReader pour appeler getWidth() et getHeight() dessus.
    - Une fois que tu as ces données, tu closes le ZipInputStream. Du coup, tu as seulement dézippé les headers du fichier image en question.

  8. #8
    Membre habitué Avatar de VinnieMc
    Inscrit en
    Décembre 2005
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 208
    Points : 161
    Points
    161
    Par défaut
    Merci!!! c'est ce que j'ai fait finalement, ça marche

  9. #9
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Slt
    Pour info, pour connaitre la taille de n'importe quel fichier, il faut lire l’entête, car c'est la ou cette information est stockée.
    Un fichier au format zip est un fichier compressé avec a algorithme dérivé de l'algo de Lempel-ziv, donc pour résumer, même si cette méthode excise, elle commencerait d'abord par extraire l’entête du fichier.
    Bon courage.

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 566
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par mohamine1989 Voir le message
    donc pour résumer, même si cette méthode excise, elle commencerait d'abord par extraire l’entête du fichier.
    ... Ou alors parcourir les ZipEntry, comme je l'ai dit.

    Mais là, la question n'était pas sur des tailles de fichiers, mais sur des dimensions d'images. C'est donc un peu plus compliqué. C'est les headers des fichiers images, qui nous intéressent. Et ce que j'ai indiqué marche pour ça.

Discussions similaires

  1. [GD] Connaître les dimensions d'une image
    Par stitch dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/10/2006, 21h23
  2. [ImageMagick] Obtenir les dimensions d'une image externe?
    Par Death83 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/01/2006, 09h57
  3. [Image] Connaitre les dimensions d'une image sans la charger
    Par FredN dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/01/2006, 12h06
  4. changer la dimension d'une image dans un tableau
    Par robocop2776 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/10/2005, 15h20

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