Bonjour,
Je souhaite enregistrer un "Bitmap monImage" avec la méthode
Save(String, ImageCodecInfo, EncoderParameters) afin de pouvoir contrôler certains paramètres telles que le facteur de qualité en JPEG ou le facteur de compression et le nombre de couleurs en PNG.
J'ai joué avec ImageCodecInfo.GetImageEncoders() pour trouver la liste des codecs disponibles, et maintenant je cherche à trouver la liste des paramètres disponible pour chaque codec.
Je me serais attendu a ce que la méthode GetEncoderParameterList() soit un membre de ImageCodecInfo, ce qui me semblerait logique (obtenir la liste des Encoderparameter disponible pour un ImageCodec donné).
Mais ce n'est pas le cas ..... cette méthode étant un membre de Image.
Et si je l'applique à monImage, j'obtiens une exception "Non implémentée".
Je ne comprend donc pas comment je peux savoir pour chaque ImageCodecInfo, quels paramètres sont supportés.
Il y a bien un exemple dans MSDN de Image.Save() dans ce contexte que je copie ci-dessous :
Mais c'est exemple est basé sur le postulat que l'encodeur Jpeg supporte le paramètre appelé Quality
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 // Create an Encoder object based on the GUID // for the Quality parameter category. System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; // Create an EncoderParameters object. // An EncoderParameters object has an array of EncoderParameter // objects. In this case, there is only one // EncoderParameter object in the array. EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L); myEncoderParameters.Param[0] = myEncoderParameter; bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jgpEncoder, myEncoderParameters);
Y a t'il donc une méthode qui pour un ImageCodecInfo donné permette de lister les System.Drawing.Imaging.Encoder supportés ?
Merci d'avance
Jean-Michel (aka Barbudor)
Partager