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 :

Réduire Taille des images JPEG


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut Réduire Taille des images JPEG
    bonjour

    j'aimerais savoir comment faire pour réduire la taille des images jpeg sans trop affecter la qualité (cause : contrainte de taille des documents qui vont contenir les images) ,

    pour info j'ai des images jpeg de taille 100Ko et comme j'aurai environ 100 images par document donc ça fera trop en taille surtt pour l'envoi de doc par mail ,j'aimerais dégrader les couleurs des images par exemple pour avoir une taille moins .(p.s : pareil la taille si je convertis en png )

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    et si tu convertis en Tiff ? ou GIF?
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut
    j'ai deja essayé ça mais ça degrade trop la qualité de l'image

  4. #4
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut
    j'ai deja une piste mais je sais pas vraiment comment faire
    c le fait d'utiliser system.drawing.imaging et encoder
    qui permet d'encoder les images ...
    a voir aussi mais si klk1 en connait deja un pe la dedans merci de l'indiquer
    lol
    a+

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonsoir,

    Je ne suis pas sur que ce soit ce que tu veux mais bon... J'ai pas vraiment saisi si tu voulait baisser la taille des images ou le poids des images.
    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
     
               //Image source
                Bitmap imgSrc = (Bitmap)Bitmap.FromFile(@"C:\fichiersource.jpg");
     
                //Image de destination de 200x200 pixels
                Bitmap imgDest = new Bitmap(200,200);
     
                //Tu récupére un objet Graphics de l'image de destination
                using(Graphics gDest = Graphics.FromImage(imgDest))
                {
                    //on choisit la qualité maximale pour le redimensionnement de l'image
                    gDest.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    //on écrit l'image source dans la nouvelle Bitmap
                    gDest.DrawImage(imgSrc, new Rectangle(0, 0, imgDest.Width, imgDest.Height));
                }
     
                //on sauvegarde la bitmap
                imgDest.Save(@"C:\fichierdest.jpg");
    Par contre il ne faut pas oublier de disposer les Bitmaps.

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    pour la taille des images, la solution de harz62 est bonne (mais un getthumbnailimage pourrait aussi marcher) sinon pour réduire le poids, ca pas de solution miracle, ca dépend de l'encodage. une chance, en JPEG, c'est l'un des rares formats pour lequel, tu peux modifier le quotient de qualité.

    un tuto bien clair et aéré
    http://www.geekpedia.com/tutorial232...ng-Csharp.html
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  7. #7
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut
    au fait ya un attribut colordepth dans encoder dans system.drawing.imagning, cet attribut permet de reduire le nombre de couleur sans affecter la qualité de l'image mais je seche trop sur ça

  8. #8
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    comment tu peux sécher alors que sur la MSDN y a des exemples complets
    http://msdn2.microsoft.com/en-us/lib...olordepth.aspx
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  9. #9
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut
    bah en fin de compte j'ai essayé toute les propositions ,resultat pire lol
    j'ai une jpeg de 100ko et aprés transformation j'ai un jpeg de 130 180 ...

  10. #10
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 101
    Points : 46
    Points
    46
    Par défaut
    voila pour ceux qui auront le meme prob prochainement
    30 : c le taux de compression
    Image/jpeg: c le codec vous pouvez utiliser image.png cadepent
    800 600 pour redimensionner l'image vous enlever le commentaire si besoin

    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
    23
    24
    25
    26
    27
     
    private static 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;
            }
     
    Image img = Image.FromFile("entree.jpg");
                Bitmap oBSmall = new Bitmap(img);//,800, 600);
                string sNewFileName = "sortie.jpg";
     
     
                ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
                //création d'un paramètre d'encodage lié à la qualité de la compression
                Encoder myEncoder = Encoder.Quality;
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 30L);
                EncoderParameters myEncoderParameters = new EncoderParameters(1);
                myEncoderParameters.Param[0] = myEncoderParameter;
     
                oBSmall.Save(sNewFileName, myImageCodecInfo, myEncoderParameters);

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2014, 13h55
  2. Réponses: 3
    Dernier message: 19/04/2006, 12h16
  3. Taille des images....
    Par chronos dans le forum Windows
    Réponses: 2
    Dernier message: 10/06/2005, 13h06
  4. [DBase][BDE]Insérer des images JPeg dans un table.u
    Par migauvin dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2004, 12h03

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