J'utilise le code suivant pour compresser une image et cela fait du bon travail mais je veux utiliser l'image compressée et ne pas l'enregistrer. Donc maintenant je dois enregistrer l'image puis la relire, ce qui est lent. Y a-t-il un moyen de le compresser sans le sauvegarder?Compresser l'image sans l'enregistrer
private void compress(System.Drawing.Image img, long quality, ImageCodecInfo codec)
{
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(Encoder.Quality, quality);
img.Save("check1.jpg", codec, parameters);
}
private static ImageCodecInfo GetCodecInfo(string mimeType)
{
foreach (ImageCodecInfo encoder in ImageCodecInfo.GetImageEncoders())
if (encoder.MimeType == mimeType)
return encoder;
throw new ArgumentOutOfRangeException(
string.Format("'{0}' not supported", mimeType));
}
Lors de la sauvegarde je reçois maintenant ceci: Une exception non gérée de type 'System.ArgumentException' s'est produite dans System.Drawing.dll Informations supplémentaires: Le paramètre n'est pas valide. – kgsw
Si vous regardez le lien que j'ai fourni, cette surcharge ne lance pas 'ArgumentException', seulement' ArgumentNullException' et 'ExternalException'. Êtes-vous sûr de recevoir une 'ArgumentException'? Êtes-vous sûr que c'est sur la ligne 'img.Save'? –
C'est certainement la ligne de sauvegarde et ceci est copié à partir de l'écran \ Une exception non gérée de type 'System.ArgumentException' s'est produite dans System.Drawing.dll Informations supplémentaires: Le paramètre n'est pas valide. – kgsw