KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a cannon digital camera and I set it to take pictures with superfine quality and it outputs a .jpg file 3 mega in size. If I load it like this in ASP.NET(this is useful to change it's dpi resolution or crop it or whaterver) imgPicture = Image.FromFile(Config.WorkDirectory + this.TempPhotoName); bmpPicture = new Bitmap(imgPicture); and then I save it again like this: bmpModified.Save(Config.WorkDirectory + this.TempPhotoName,System.Drawing.Imaging.ImageFormat.Jpeg); it outputs a jpg that is only 700KB or so in size. There is a loss of quality. I also tried saving it like this: bmpPicture.Save(Config.WorkDirectory + this.TempPhotoName, codecJpeg, encparams); where codecJpeg is ImageCodecInfo codecJpeg = this.getEncoderInfo("image/jpeg"); private ImageCodecInfo getEncoderInfo(string mimeType) { // Get image codecs for all image formats ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); // Find the correct image codec for (int i = 0; i < codecs.Length; i++) if (codecs[i].MimeType == mimeType) return codecs[i]; return null; } and encparams: EncoderParameters encparams = new EncoderParameters(1); encparams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 97L); This way the size(and I suspect also the quality) is maintained but I am inputing the quality by hand. I want to ask: Is there a way to save the image with the same quality as it was loaded without hardcoding the quality value? Thank you in advance
Tags (comma-separated)
Save Edits
Cancel