Reputation: 263
This is the error i am getting right now
System.Runtime.InteropServices.ExternalException (0x80004005): A generic error occurred in GDI+. at System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
i am using this same code on other website in same machine and there is no problem i really don't know what's going on please give me solution
here is my code
double newHeight = 0;
double newWidth = 0;
double scale = 0;
//create new image object
Bitmap curImage = new Bitmap(filePath);
//Determine image scaling
if (curImage.Height > curImage.Width)
{
scale = Convert.ToSingle(size) / curImage.Height;
}
else
{
scale = Convert.ToSingle(size) / curImage.Width;
}
if (scale < 0 || scale > 1) { scale = 1; }
//New image dimension
newHeight = Math.Floor(Convert.ToSingle(curImage.Height) * scale);
newWidth = Math.Floor(Convert.ToSingle(curImage.Width) * scale);
//Create new object image
Bitmap newImage = new Bitmap(curImage, Convert.ToInt32(newWidth), Convert.ToInt32(newHeight));
Graphics imgDest = Graphics.FromImage(newImage);
imgDest.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
imgDest.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
imgDest.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
imgDest.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders();
EncoderParameters param = new EncoderParameters(1);
param.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
//Draw the object image
imgDest.DrawImage(curImage, 0, 0, newImage.Width, newImage.Height);
//Save image file
newImage.Save(saveFilePath, info[1], param);
//Dispose the image objects
curImage.Dispose();
newImage.Dispose();
imgDest.Dispose();
}
Upvotes: 0
Views: 446
Reputation: 9407
You will get a GDI error message if the account you're running under cannot save to the path at saveFilePath
on this line:
newImage.Save(saveFilePath, info[1], param);
Upvotes: 2