Register   Login
     
  Categories  
  Archives  
  Authors  
  Blog  

Current Articles | Categories | Search | Syndication

Monday, April 24, 2006
GIF Quality in .NET
By smcculloch @ 3:06 AM :: 2053 Views :: 0 Comments :: Module Development, ASP.NET 2.0
 

I've spent the majority of the afternoon improving the quality of images resized in Simple Gallery.

The enhancements started with the suggestions in the following blog entry.

1.) Jpeg Quality Setting

System.Drawing.Imaging.ImageCodecInfo [] Info = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();   
System.Drawing.Imaging.EncoderParameters Params = new System.Drawing.Imaging.EncoderParameters(1);
Params.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
Response.ContentType = Info[1].MimeType;
thumbnail.Save(Response.OutputStream,Info[1],Params);

What this means for Simple Gallery, is an additional setting in view options for selecting between compression "Quality" or "Minimum Size" (what it currently is).

2.) Graphic Object Options

graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphic.SmoothingMode = SmoothingMode.HighQuality;
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphic.CompositingQuality = CompositingQuality.HighQuality;

Again, this means setting these options when "Compression" is set to Quality.

3.) GIF Improvements

The last goal was the GIF improvements as images uploaded as GIF can be terrible and pixelated. What I learnt was this is not unique to my development, and managed code has a real problem dealing with GIFs. Every solution that I found relied on "unsafe" code and would certainly not run in medium trust (the default for DotNetNuke).

Here are some of the solutions found, but they require either special permissions or run lower then medium trust:-

Results

So, I've implemented option #1 and #2, can you spot the differences in the generated images?

Image 1

Image 2

Conclusion

The only problem is that the photo resized with the quality setting is considerably larger then the other, but then that's why the config option is there.

Rating
Comments
Currently, there are no comments. Be the first to post one!
Click here to post a comment