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

Multimédia Java Discussion :

Enregistrer une image en JPEG (choisir la qualité)


Sujet :

Multimédia Java

  1. #1
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut Enregistrer une image en JPEG (choisir la qualité)
    Salut,

    Pour enregistrer une image, je me base sur la première partie de cette page:
    http://java.sun.com/j2se/1.4.2/docs/.../apps.fm4.html

    Le problème, c'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ImageIO.getImageWritersByFormatName("jpg");
    ne nous permet pas de choisir la qualité que l'on veut attribuer au JPEG (souvent elle est choisie entre 0 et 10, ou entre 0 et 12 (photoshop) ou encore entre 0% et 100%).

    Peut-on choisir la qualité d'encodage JPEG en java?

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut utiliser un ImageWriteParam qui contiendra les paramètres spécifiques au format sélectionné. Tu peux utiliser la méthode getDefaultWriteParam() de ton ImageWriter qui te créera le bon ou en créer un de toutes pièces (JPEGImageWriteParam dans ton cas).

    Tu devrais y trouver ton bonheur

    a++

  3. #3
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    Il faut utiliser un ImageWriteParam qui contiendra les paramètres spécifiques au format sélectionné. Tu peux utiliser la méthode getDefaultWriteParam() de ton ImageWriter qui te créera le bon ou en créer un de toutes pièces (JPEGImageWriteParam dans ton cas).

    Tu devrais y trouver ton bonheur

    a++
    Et une fois que je l'ai créé, je l'affecte comment à mon ImageWriter?

    Les méthodes .write() me paraissent assez compliquées, y'a beaucoup d'arguments pour celui avec le ImageWriterParam

    As-tu un petit exemple?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    write(RenderedImage) correspond à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write(null, new IIOImage(image, null, null), null);
    donc dans ton cas cela pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void write(RendereImage image, ImageWriteParam param) {
        write(
            null,    // Pas de metadata
     
            new IIOImage(
                image,    // le bufferedImage
                null,     // pas de thumbnails
                null),    // pas de metadata
     
            param    // ton ImageWriteParam
        );
    }
    a++

  5. #5
    Membre Expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Par défaut
    Citation Envoyé par adiGuba
    write(RenderedImage) correspond à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write(null, new IIOImage(image, null, null), null);
    donc dans ton cas cela pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public static void write(RendereImage image, ImageWriteParam param) {
        write(
            null,    // Pas de metadata
     
            new IIOImage(
                image,    // le bufferedImage
                null,     // pas de thumbnails
                null),    // pas de metadata
     
            param    // ton ImageWriteParam
        );
    }
    a++
    OK je te remercie...

    Mais, on est obligé d'avoir l'image en BufferedImage, si on ne l'a qu'en Image, y'a pas un moyen sans la réécrire dans un BufferedImage?

    EDIT: Quel est l'output par défaut de l'ImageWriter si on ne fait pas un .setOutput()?
    Citation Envoyé par javadoc
    The default implementation sets the output instance variable to the value of output after checking output against the set of classes advertised by the originating provider, if there is one.
    Je n'ai pas compris ^^

Discussions similaires

  1. Enregistrer une image Jpeg
    Par tapouni dans le forum Images
    Réponses: 1
    Dernier message: 01/05/2008, 03h37
  2. Réponses: 1
    Dernier message: 21/04/2007, 07h43
  3. [GLScene] Comment enregistrer une image au format TGA
    Par Invité dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 27/05/2005, 15h12
  4. Enregistrer une image
    Par N@sH dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/05/2005, 10h07
  5. enregistrer une image et un identifiant
    Par dosach dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/03/2004, 17h18

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