.Net - Throwing Arguments When Trying to Convert Bitmap to JPEG
So, I was trying to convert a Bitmap image to JPEG to code and I keep getting this error:
An unhandled exception of type 'System.ArgumentException' occurred in System.Drawing.dll
Additional information: The parameter is not valid.
Here is the related code. All paths are correct and the EncoderParameter is not null, what else could be causing this?
ImageCodecInfo codecInfo = null;
foreach( ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders())
{
if (codec.MimeType != "image/jpeg") { continue; }
codecInfo = codec;
break;
}
EncoderParameters encoderParameters = new EncoderParameters();
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85);
using (Bitmap bitmapToConvert = new Bitmap(filePathIn))
{
bitmapToConvert.Save(filePathOut, codecInfo, encoderParameters);
}
+2
source to share
1 answer
Doh!
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85);
Should be:
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85L);
//OR
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, (long)85);
In IL 85 stays as int, and GDI backend doesn't like it, it wants long. I hate non-descriptive exceptions.
Ok, thanks for all the time.
+4
source to share