I've got this bit of code:
Image origImage = Image.FromFile("temp.jpg");
Image newImage = new Bitmap(objNewSize.Width, objNewSize.Height,
origImage.Pixelformat);
Graphics objGraphic = Graphics.FromImage(newImage);
objGraphic.CompositingQuality = CompositingQuality.HighQuality;
objGraphic.SmoothingMode = SmoothingMode.HighQuality;
objGraphic.InterpolationMode = InterpolationMode.High;
Rectangle objRect = new Rectangle(0, 0, 200, 200);
objGraphic.DrawImage(origImage, objRect);
newImage.Save("temp_new.jpg", origImage.RawFormat);
It works beautifully for jpgs. As the GRaphics.FromImage does not
accept Indexed pixel formats, such as Format8bppIndexed, I made some
changes to my code:
Image origImage = Image.FromFile("temp.gif");
Image newImage = new Bitmap(objNewSize.Width, objNewSize.Height,
System.Drawing.Imaging.PixelFormat.Format24bppRgb) ;
Graphics objGraphic = Graphics.FromImage(newImage);
objGraphic.CompositingQuality = CompositingQuality.HighQuality;
objGraphic.SmoothingMode = SmoothingMode.HighQuality;
objGraphic.InterpolationMode = InterpolationMode.High;
Rectangle objRect = new Rectangle(0, 0, 200, 200);
objGraphic.DrawImage(origImage, objRect);
newImage.Save("temp_new.gif", origImage.RawFormat);
The result I get is an over-pixelated image. (As opposed to me using
Photoshop to resize the image) I'm running out of ideas. How can I
resize an indexed image wihtout losin too much info?