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

C# Discussion :

Compresser une image en Jpeg avec Taux


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut Compresser une image en Jpeg avec Taux
    Bonjour,
    Encore moi !!
    je dois compresser un bitmap en Jpg en fonction d'un taux choisi préalablement.
    A force de recherche j'ai trouver sur le net le code suivant mais je n'arrive pas a attribuer au nouveaux Bitmap l'image compressé.
    Merci de votre aide encore une fois !!
    Récupération du format du Bitmap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private ImageCodecInfo GetEncoderInfo(String mimeType)
                     {
                     int j;
                     ImageCodecInfo[] encoders;
                     encoders = ImageCodecInfo.GetImageEncoders();
                     for (j = 0; j < encoders.Length; ++j)
                     {
                     if (encoders[j].MimeType == mimeType)
                     return encoders[j];
                     }
                     return null;
                     }
    Modif puis attribution au nouveau Bitmap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                //chargement de l'image
                Bitmap BmpReduit = new Bitmap(pictureBox1.Image);
                //on prend le codec jpeg
                ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
                //création d'un paramètre d'encodage lié à la qualité de la compression
                System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, IntMonTaux);
                //on crée un tableau de parametre (il n'y en a qu'un)
                EncoderParameters myEncoderParameters = new EncoderParameters(1);
                myEncoderParameters.Param[0] = myEncoderParameter;
                //on sauvegarde l'image
               //c'est ici que ça bloque.
                BmpReduit.SaveAdd( ??????????????)

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    En relisant mon explication n'est pas claire alors voici un complément.

    le fait de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BmpReduit.Save("MyPicture.jpg",myImageCodecInfo,myEncoderParameters);
    va m'enregistrer une nouvelle image "MyPicture.jpg" mais ce n'est pas ce que je veux.

    Ce que je cherche à faire c'est d'attribuer au Bitmap BmpReduit l'image de PictureBox1 compressé en jpg a un taux définit.

    Merci de votre aide.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Désolé pour l'oubli des balises dans le post précédent Buns

    Bon ben j'ai trouvé tout seul comme un grand !!
    la réponse(enfin ce qui fonctionne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                   MemoryStream ms = new MemoryStream();//creation d'un flux de données
                   BmpReduit.Save(ms, myImageCodecInfo,myEncoderParameters);
                   BmpReduit = new Bitmap( ms);
    		ms.Dispose();//libere le flux de données

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

Discussions similaires

  1. Compresser une image JPEG
    Par Turtle_fr dans le forum 4D
    Réponses: 13
    Dernier message: 05/07/2007, 11h33
  2. Enregistrer une image en JPEG (choisir la qualité)
    Par ®om dans le forum Multimédia
    Réponses: 4
    Dernier message: 04/08/2006, 15h43
  3. Faire glisser une image trop grande avec la souris
    Par avogadro dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 28/07/2006, 16h50
  4. Sauvegarder une image (.GIF/.JPG) avec CppWebBrowser
    Par Argol_Medusa dans le forum C++Builder
    Réponses: 12
    Dernier message: 12/12/2005, 11h27
  5. Réponses: 2
    Dernier message: 04/08/2005, 11h32

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