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

Windows Forms Discussion :

[C#] Comment convertir une image bmp en jpg !!!


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut [C#] Comment convertir une image bmp en jpg !!!
    Bonjour,


    Petite question !!!

    Comment convertir une image bmp en jpg ?

    Remarque: Je sais qu'il y a une méthode ConvertTo de la classe ImageConverter.
    Hélas, je n'ai pas d'exemple (source en C#) pour pouvoir appliquer cette méthode.

    De ce fait, si vous avez un exemple, pouvez-vous la transmettre ?

    Merci d'avance,

    Yves

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 83
    Points : 107
    Points
    107
    Par défaut
    Salut,

    Plusieurs façons pour convertir un BMP en JPEG

    La plus facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Bitmap bm = new Bitmap("g:\\test.bmp");
    bm.Save("g:\\test.jpg",ImageFormat.Jpeg);
    une plus complexe (qui te permet de jouer sur différents facteurs telle que la compression. se reporter à l'aide de MSDN pour plus de rensignements)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    ImageCodecInfo[] codec = ImageCodecInfo.GetImageEncoders();
    // tableau d'objets qui contiennent des informations 
    // sur les encodeurs d'images intégrés à GDI+.
    // Sur mon poste, j'ai les codecs suivants :
    // image/bmp 
    // image/jpeg
    // image/gif ...
     
    // initialisation d'un tableau de dimension 2 de parametres d'encodages 
    EncoderParameters encodeurs = new EncoderParameters( 2 );
    // parametre qualite
    EncoderParameter qualite = new EncoderParameter( Encoder.Quality , (long)100);
    // Parametre compression 
    EncoderParameter compression = new EncoderParameter(Encoder.Compression ,(long)24);
    // remplir tableau parametre
    encodeurs.Param[0] = qualite;
    encodeurs.Param[1] = compression;
    // Charger image initiale
    Bitmap bm = new Bitmap("g:\\test.bmp");
    // sauvergarde image en utilisant codec[1] qui correspond à 'jpeg' sur mon poste
    bm.Save("g:\\test.jpg",codec[1],encodeurs);

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Salut,

    Merci beaucoup pour la réponse.

    A choisir, je préfère la première solution.

    Toutefois, sais-tu comment adapter la première solution sans passer par une méthode physique (par fichier) mais uniquement en mémoire/à la volée (ex:stream ou byte[])

    Merci.

    Yves

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par vandeyy
    Toutefois, sais-tu comment adapter la première solution sans passer par une méthode physique (par fichier) mais uniquement en mémoire/à la volée (ex:stream ou byte[])
    Tu ne passe pas par une méthode physique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // Ton fichier de départ
    Bitmap bm = new Bitmap("g:\\test.bmp"); 
    // Tu sauvegrdes sous une autre extension
    bm.Save("g:\\test.jpg",ImageFormat.Jpeg);

  5. #5
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    303
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 303
    Points : 143
    Points
    143
    Par défaut
    Si je comprends bien, la variable: "bm" contient l'image en jpeg sans la copier sur le disque dur car dans mon cas, je ne dois absolument pas écrire la nouvelle image(jpeg) sur le disque dur (uniquement dans la ram).

    Remarque: c'est logiquement juste un type casting !

    Bien à toi.

    Yves

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Regarde dans MSDN les différents overloads de la méthode Save. Il y en a notamment deux qui prennent un Stream en paramètre au lieu d'une chaîne.


    (c'est pour le plaisir là, j'avoue :)

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

Discussions similaires

  1. [Image]Comment convertir des images bmp en jpg avec PHP ?
    Par amarcil dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/04/2006, 13h59
  2. Comment convertir une image bmp en jpeg ?
    Par zidenne dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2006, 11h37
  3. Comment convertir une image en BMP ?
    Par blaiseac dans le forum Langage
    Réponses: 6
    Dernier message: 30/07/2005, 18h24
  4. Comment convertir une image bmp en png??
    Par Leclair2000 dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2005, 08h15

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