Creating great thumbnails in ASP.NET

The built in function for creating thumbnails in ASP.NET is extremely convenient and very simple to implement.

int width = 190;
int height = 190;
Bitmap source = new Bitmap("c:\someimage.gif");
System.Drawing.Image thumb = source.GetThumbnailImage(width,height,null,IntPtr.Zero);

 original (31.7k)

The trouble is that it produces relatively poor quality results and excessively large file sizes. The thumbnails tend to look very muddy when using this route, but many times it's good enough for whatever your needs may be.

An Alternative

The alternative that I use regularly involves redrawing the image using the System.Drawing.Graphics library. It is very simple to implement but produces superior results if for no other reason than its file size. The following is the standard function I use for creating thumbnails.

public static Bitmap CreateThumbnail(Bitmap source, int thumbWi, int thumbHi, bool maintainAspect)
        {
            // return the source image if it's smaller than the designated thumbnail
            if (source.Width < thumbWi && source.Height < thumbHi) return source;

            System.Drawing.Bitmap ret = null;
            try
            {
                int wi, hi;

                wi = thumbWi;
                hi = thumbHi;

                if (maintainAspect)
                {
                    // maintain the aspect ratio despite the thumbnail size parameters
                    if (source.Width > source.Height)
                    {
                        wi = thumbWi;
                        hi = (int)(source.Height * ((decimal)thumbWi / source.Width));
                    }
                    else
                    {
                        hi = thumbHi;
                        wi = (int)(source.Width * ((decimal)thumbHi / source.Height));
                    }
                }

                // original code that creates lousy thumbnails
                // System.Drawing.Image ret = source.GetThumbnailImage(wi,hi,null,IntPtr.Zero);
                ret = new Bitmap(wi, hi);
                using (Graphics g = Graphics.FromImage(ret))
                {
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                    g.DrawImage(source, 0, 0, wi, hi);
                }
            }
            catch
            {
                ret = null;
            }

            return ret;
        }

aG8klKbxhE-h43x2_tLGsw (10.5k)

This function is handy because it's parameters include a flag for maintaining the aspect ratio of the image along with the thumbnail size you would like. The thumbnail magic happens in this portion of the code:

                using (Graphics g = Graphics.FromImage(ret))
                {
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    g.FillRectangle(Brushes.White, 0, 0, wi, hi);
                    g.DrawImage(source, 0, 0, wi, hi);
                }

This method is slightly slower but the results are hard to ignore as illustrated by the comparison below:

(31.7k)original aG8klKbxhE-h43x2_tLGsw (10.5k)

Pretty nice improvement in both file size and quality I would say, but....

We can do even better

Now we can add into the mix some JPEG compression and really optimize the results. I won't pretend to fully understand how the JPEG compression code below works, but it sure does the trick.

                //Configure JPEG Compression Engine
                System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();
                long[] quality = new long[1];
                quality[0] = 75;
                System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                encoderParams.Param[0] = encoderParam;

                System.Drawing.Imaging.ImageCodecInfo[] arrayICI = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
                System.Drawing.Imaging.ImageCodecInfo jpegICI = null;
                for (int x = 0; x < arrayICI.Length; x++)
                {
                    if (arrayICI[x].FormatDescription.Equals("JPEG"))
                    {
                        jpegICI = arrayICI[x];
                        break;
                    }
                }

This code will set up the encoderParameters needed for saving the new compressed thumbnail. The quality[0] value is where you set the compression level. I've had success going as low as a value of 40 for some applications, but when quality is a major requirement I find 75 to do very well. To use this engine you would execute the JPEG Compression code before you save your thumbnail, then use its encoderParamaters as a parameter when saving. For example:

	System.Drawing.Image myThumbnail = CreateThumbnail(myBitmap,Width,Height,false);                

	//Configure JPEG Compression Engine
                System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();
                long[] quality = new long[1];
                quality[0] = 75;
                System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                encoderParams.Param[0] = encoderParam;

                System.Drawing.Imaging.ImageCodecInfo[] arrayICI = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
                System.Drawing.Imaging.ImageCodecInfo jpegICI = null;
                for (int x = 0; x < arrayICI.Length; x++)
                {
                    if (arrayICI[x].FormatDescription.Equals("JPEG"))
                    {
                        jpegICI = arrayICI[x];
                        break;
                    }
                }
	
	myThumbnail.Save(Path.Combine(SavePathThumb, fileName), jpegICI, encoderParams);
                myThumbnail.Dispose();

compressed (2.39k)

Which still looks pretty darn good for 2.39k.

Conclusion and final comparison

Here is the final comparison between the 3 thumbnails going from largest file size to smallest:

original aG8klKbxhE-h43x2_tLGsw compressed

Largest = 31.7k

Uncompressed redraw = 10.5k (67% smaller)

Compressed redraw = 2.39k (92% smaller)

It's hard to ignore those results. The source code for the thumbnail function and the JPEG compression engine are below.

ThumbnailGenerator.cs (1.97 kb)

JPEGCompressionConfig.cs (969.00 bytes)

kick it on DotNetKicks.com


Related posts

Comments

May 10. 2008 06:25 AM

Jonathan Adams

I use this method on my website www.watchfinder.co.uk to auto thumbnail and water mark my images, I neat thing to do especially to save your servers processing power, is to flush the re-sized image out to disk and create a cache.

This gives you the convenence of auto thumbnailing but without the headache of killing your server when the traffic goes up Smile

Jonathan Adams

May 10. 2008 08:01 AM

Matt

That is a good tip Jonathan, I haven't thought about auto thumbnailing images. So far whenever I've needed to generate a thumbnail I create the physical file at the time the image is processed, whether it be uploaded or imported etc.

I can see how thumbnailing at runtime could simplify image display since there would only be one file, one filename and one location for each image.

Matt

May 10. 2008 09:31 AM

xoner

Thanks, great post!!

xoner

May 10. 2008 10:22 AM

pingback

Pingback from alvinashcraft.com

Dew Drop - May 10, 2008 | Alvin Ashcraft's Morning Dew

alvinashcraft.com

May 12. 2008 06:42 PM

pingback

Pingback from davidabrahams.wordpress.com

Great thumbnail generation for ASP.NET « David Abrahams’ Weblog

davidabrahams.wordpress.com

May 13. 2008 04:52 AM

dmitry39

thx, good solution for our tasks.

Regards from Russia Smile

dmitry39

May 13. 2008 06:14 AM

Richard H

Great post, I've done a similar image component where I can pass it the width and/or height I want it to resize to and let it figure out the rest. It's also pretty easy to layover watermarks, or even add a dropshadow image around the thumb you're resizing (so long as you get a consistent thumbnail size for all your thumbs).

The reason the "quick and easy" way is so dirty is because the thumbnail it shows is actually the thumbnail that many image programs save into the JPEG when saving the JPEG, and it is horrendously low quality for that reason.

As for the JPEG compression level, even 100% quality still compresses it somewhat, it doesn't generate an uncompressed image. I think there are some other tweaks you can do with encoder parameters by setting the interpolation type for resizing of the image (it's been a while since I did mine), I'll try and dig them out and post them if you're interested.

Richard H

May 13. 2008 08:24 AM

Matt

@Richard H,

I would definitely be interested in learning more ways to manipulate images. The watermarking would be great to know and also I'm curious about image cropping if you have any knowledge on that topic. Thanks!

Matt

May 13. 2008 07:01 PM

Richard H

Bear with me - it's been a while since I wrote this... turns out my code doesn't have interpolation settings in it, although I have done that on something else. It looks as though I went down a slightly different route with saving the image via a memory stream then byte array, possibly due to how I manipulated the image, possibly not.

This example also had image cropping in it too, as it happens Smile You have to set a source and destination crop rectangle, which handles the resizing also. For the mask, allow the space around the image in this case - but if you can use a transparent GIF you can set it the same size, and do overlay. I didn't have much luck with transparent PNG's. You can't do really decent transparency on PNG-8, it has to be PNG-24, and I don't think I had any luck with getting ASP.Net to read those well.

Rectangle srcRect = new Rectangle(0, 0, originalImage.Width, originalImage.Height);
Rectangle destRect = new Rectangle(5, 5, NewWidth, NewHeight);

Rectangle maskRect = new Rectangle(0, 0, NewWidth + WidthOfMask), NewHeight + HeightOfMask);



To create the drop shadow mask:

System.Drawing.Image maskImage;
maskImage = new Bitmap(Server.MapPath(maskImage));

System.Drawing.Image oriImage = System.Drawing.Image.FromFile(Server.MapPath(originalImagePath));

Size newSize = new Size(NewWidth + WidthOfMask, NewHeight + HeightOfMask);
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(originalImage, newSize);

Graphics thisG = Graphics.FromImage(newBitmap); // Create new empty image with correct size

// Clear image first
thisG.Clear(Color.White);

// Now add place bg shadow
thisG.DrawImage(maskImage, maskRect, maskRect, GraphicsUnit.Pixel);

// Now add image
thisG.DrawImage(originalImage, destRect, srcRect, GraphicsUnit.Pixel);


That takes care of resizing and adding a mask surrounding the image. Loading a watermark is exactly the same - just with a transparent image, and not necessarily with buffer padding around the edges.

As for cropping the image, I've written a couple of routines that determined whether it was a portrait or landscape image, and cropped either the full height or full width out, to get a constant e.g. 150x112 out of the middle of the image the largest it could be, edge to edge on either height or width. Again - it's all in determining the boundaries of your source rectangle, and getting it the same aspect as your destination rectangle.

Phew - it's too late for this stuff! If that needs any more explaining, just ask Smile

Richard H

May 14. 2008 07:50 AM

pingback

Pingback from code-inside.de

Wöchentliche Rundablage: ASP.NET MVC, Silverlight 2, TDD, WPF, jQuery… | Code-Inside Blog

code-inside.de

May 14. 2008 09:46 AM

pingback

Pingback from kevinchamplin.com

Creating great thumbnails in ASP.NET

kevinchamplin.com

May 21. 2008 03:23 AM

Cliff

Hi all,

You don't by any chance have a VB.Net version of this code do you....

Also not being good with C I can't see where the image is writen to the output ie: how you get it to display on screen where you want it. Do you need an Image Placeholder on the screen that you write the ImageDraw to...

Great explaination though.

Cliff

May 21. 2008 04:37 AM

pingback

Pingback from blogs.microsoft.co.il

Better thumbnail quality with less size – see how - I hate Spaghetti (code)

blogs.microsoft.co.il

May 21. 2008 06:04 AM

Guy Harwood

if you simply flip the image 180 each way before you render the thumbnail you will get good results.

this ensures it doesnt use the embedded thumbnail that most digi cameras automatically include in every picture.

Guy Harwood

May 21. 2008 07:20 AM

mike

Shouldn't you decide the encoding based on the original? If the original is a gif, the thumbnail should be a gif too. Same with png.

Is that possible?

mike

May 21. 2008 09:08 AM

Matt

@Cliff,

The CreateThumbnail function will return a Bitmap object. Once you have that object you can do whatever it is you need to do with it. In my experience, the need I've had to generate a thumbnail came at the time the original image was uploaded. When the original image was being save to the server, I would create a thumbnail and save the thumbnail to the server as well. You can then use the thumbnail from the disk to display on your pages however you see fit.

@Mike,
Using this technique I'm not sure that the original encoding matters because the image is being loaded as a Bitmap regardless. No matter what the original encoding is, the image manipulation is done on a Bitmap object then re saved using JPEG encoding. It could very well be that you can get better quality results by testing for the original encoding and using it throughout instead of converting to a bitmap etc.

Thanks for your comments!

Matt

May 21. 2008 12:00 PM

Becoming a pilot

Hey Matt, thanks a lot! I have a generic ashx for generating my images just using plain GetThumbnailImage...While image quality isn't the best, I haven't cared much since it's *good enough* for most of my projects. I have never even paid any attention for the image size. So I will certainly change it to use your code instead. Guess that's a problem by only dynamically generating the thumbs: you never see the size of the file Smile

Becoming a pilot

May 21. 2008 08:36 PM

pingback

Pingback from blog.nunogomes.net

Very useful links

blog.nunogomes.net

May 22. 2008 06:18 PM

pingback

Pingback from ab110.com

5月20日链接篇: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF - Joycode@Ab110.com

ab110.com

May 22. 2008 08:57 PM

anonymous

great!

anonymous

May 23. 2008 09:58 AM

Quinn Wilson

How com when I look at the size of the thumb images, the size returned by I.E. doesn't jive with your #'s

Quinn Wilson

May 23. 2008 10:05 AM

Matt

@Quinn,

Hmm, that's interesting, I'm not sure actually. I wonder if it has something to do with being uploaded to the blog through windows live writer? I took the file sizes directly from the windows file system after I generated the thumbnails, before uploading them to the blog.

Matt

May 23. 2008 01:53 PM

pingback

Pingback from thinkingindotnet.wordpress.com

Enlaces de Mayo: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF « Thinking in .NET

thinkingindotnet.wordpress.com

May 23. 2008 01:55 PM

Greg

I'm using near identical code and have noticed a strange problem with creating larger thumbnails. By tweaking System.Drawing.Imaging.Encoder.Quality setting I've found the resulting file sizes double. For example using a 6MP jpeg image which is 3MB and resizing it to 600x400 with a quality setting of 82 I get a 64kb file. If I change the quality setting to 83 the new file is now 128kb. I've found no possible way of getting a file size in between. It's the same problem for other file sizes and differing quality settings. My thumbnail sizes end up being multiples, like: 2kb, 4kb, 8kb, 16kb, 32kb, 64kb, 128kb, etc depending on dimension and quality size. Using photoshop allows me to get in between file sizes so I know it's not a JPEG limitation. Also not every resized image ends up being the same file size. A certain quality setting may give me 8 out of 10 64kb files and the other 2 are 128kb. Any ideas?

Greg

May 24. 2008 03:33 AM

pingback

Pingback from weblogs.asp.net

Links op 20 mei: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF - Scott Guthrie's Blog in Dutch

weblogs.asp.net

May 24. 2008 10:21 AM

pingback

Pingback from aspnetguru.wordpress.com

May 20th Links: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF « .NET Framework tips

aspnetguru.wordpress.com

May 25. 2008 06:02 AM

pingback

Pingback from planet.cieplne.pl

Planeta C# » May 20th Links: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF

planet.cieplne.pl

May 31. 2008 05:01 AM

pingback

Pingback from scaleurl.com

Silverlight Hub » May 20th Links: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF

scaleurl.com

June 5. 2008 06:14 PM

Greg

Ignore my previous comment. I was using a memory stream and getting the data via GetBuffer instead of ToArray which meant I was getting the padded part of the unused buffer as well. Your method of using Bitmap instead of streams and byte arrays is much better. Thanks again.

Greg

June 6. 2008 02:10 AM

Jan Wikholm

Thank you!

You just made my life a lot easier Smile

Jan Wikholm

June 9. 2008 04:08 AM

Nathan Veysey

The images do not accurately reflect you stated sizes? why not?

Nathan Veysey

June 9. 2008 07:31 AM

Matt

@Nathan,

Please see my comment about that issue on May 23rd.

Matt

June 13. 2008 12:49 PM

SC

An even better method is to skip GDI+ altogether and use the WPF Imaging system. It can be used to produce thumbnails that are even better in quality while preserving EXIF and ICC profiles.

SC

October 6. 2008 05:03 PM

Nathanael Jones

I've noticed big improvements when setting CompositingQuality and Smoothing Mode also... quality 90 also seems to give the best all-around results.... GDI doesn't have very granular quality settings.. but with the right settings you can't tell a difference from Photoshop.

It's really nice when you integrate this into the asp.net pipeline... So you can add ?thumbnail=jpg&width=100 to the URL... makes resizing real easy Smile

I also found that disk caching is a *requirement* for a live server... if you have lots of thumbnails on the same page you can watch your CPU and memory use spike... and it also kills I/O, since each thumbnail is reading the original 2MB file instead of the 2kb resizied version..

I tested my code for a year, and recently released it at nathanaeljones.com/products/asp-net-image-resizer/

Hope this helps,
Nathanael Jones

Nathanael Jones

December 3. 2008 12:17 PM

Busby SEO Test

Useful tips, you make my life easier

Busby SEO Test

December 3. 2008 12:19 PM

Busby SEO Test

thx, good solution for our jobs

Busby SEO Test

December 19. 2008 07:51 AM

Busby SEO test

so clearly tips and thak for tat.

Busby SEO test

January 2. 2009 01:55 AM

Speed Dating in New York

That's a very nice piece of code. I like the fact that it improves file size. Thanks for sharing this.

Speed Dating in New York

January 7. 2009 03:04 AM

jeli

Greetings From China.

jeli

January 9. 2009 07:44 PM

gosip artis terbaru

thank you. I've been searching for creating thumbnail for a long time, and now I have the answer Smile

gosip artis terbaru

January 12. 2009 07:32 AM

Busby SEO Test

Thanks for this wonder code. ill debug it,

Busby SEO Test

January 15. 2009 09:38 AM

Busby SEO Test

thanks for this code, I will be sharing it to friends who is looking for this stuff.

Busby SEO Test

January 18. 2009 03:25 PM

Stonehenge Tours

This code works well for me - many thanks.

Stonehenge Tours

January 21. 2009 08:58 AM

Culprits of the Bad and Dirty tricks in Busby SEO Test Contest

Thanks for great share for this codes. thank.

Culprits of the Bad and Dirty tricks in Busby SEO Test Contest

January 23. 2009 12:03 PM

inventory management software

this codes was great.. Smile
love this tips.. thanks

inventory management software

January 24. 2009 07:17 AM

Busby SEO

Thank for the code

Busby SEO

January 24. 2009 08:36 PM

Busby SEO Test

really helpful with the guide to create thumbnail with easy and simple implement. thanks for the guide.

Busby SEO Test

January 25. 2009 01:55 AM

Busby SEO Test

nice piece of code. thanks for sharing it to the public

Busby SEO Test

January 26. 2009 05:24 AM

Cottages in Devon

Thanks for sharing this cool piece of code. It works really well.

Cottages in Devon

January 26. 2009 11:14 AM

Busby SEO Test!!!

thanks for the code, it's really useful for me.

Busby SEO Test!!!

February 2. 2009 05:16 AM

magnum4d

ermmm.. nice code and great share.. thanks dude..

magnum4d

February 3. 2009 09:27 PM

hectic capiznon bloggers 2009

nice code thanks for sharing.

hectic capiznon bloggers 2009

February 4. 2009 09:34 AM

Kahuna

I would definitely be interested in learning more ways to manipulate images. The watermarking would be great to know and also I'm curious about image cropping if you have any knowledge on that topic. Thanks!

Kahuna

February 5. 2009 12:01 AM

Info Lowongan Kerja

That is very useful for me, thanks for that code informations.

Info Lowongan Kerja

February 5. 2009 12:03 AM

Lowongan

thanks for the informations.

Lowongan

February 5. 2009 10:07 AM

Web site monitoring man

Indeed, the thumbnails are great! Thanks for the code and for the tutorial!

Web site monitoring man

February 6. 2009 02:43 AM

Web Conference

Thanks for those awesome code.. Greetings.

Web Conference

February 6. 2009 09:22 AM

Lyon T4

so clearly tips and thak for tat.

Lyon T4

February 10. 2009 02:21 AM

Registry Errors

Thanks for posting this kind of ideas and tips, it's an additional knowledge from what I know before...keep it up..

Registry Errors

February 10. 2009 02:25 AM

Fix Corrupt Registry

It's an additional knowledge again for me, this code is great, thanks again Matt, hope that many more people like you that doing this kind of post, sharing ideas and tips...

Fix Corrupt Registry

February 10. 2009 04:43 AM

Paris Tours

Nice bit of useful information. I really like asp.net works well.

Thanks.

Paris Tours

February 10. 2009 09:26 PM

Free Service Manual

Thanks for the great reference post.

Free Service Manual

February 13. 2009 12:57 AM

Fix Registry Errors

Thats a great post!!! Thanks!!

Fix Registry Errors

February 16. 2009 11:30 AM

Meeting rooms london

Hi Matt, Thanks for posting this kind of ideas and tips, it's an additional knowledge from what I know before...keep up the good work..

Meeting rooms london

February 16. 2009 04:20 PM

Auto Repair Manual

I think this helpful so well, thanks.

Auto Repair Manual

February 17. 2009 04:28 PM

divorce lawyer in paramus

thx, good solution for our jobs

divorce lawyer in paramus

February 18. 2009 01:50 AM

Financial-Solution

thanks, useful tips!

Financial-Solution

February 20. 2009 09:09 PM

Inventory management software

i want to test this code. Thanks

Inventory management software

February 22. 2009 09:48 PM

Kampanye Damai Pemilu Indonesia 2009

great article…

here..

thanks for sharing..

Kampanye Damai Pemilu Indonesia 2009

February 23. 2009 05:28 AM

Learning Selling

thanks for this! very useful!

Learning Selling

March 2. 2009 02:40 AM

giving2prosperity

This post will help a lot, thanks for sharing it.

giving2prosperity

March 2. 2009 03:44 AM

home theater system

This is good stuff. I want to try it out.

home theater system

March 2. 2009 03:45 AM

digital photo frames

What a cool features! I like it.

digital photo frames

March 2. 2009 02:27 PM

Auto Repair Manual

thank you for useful tips

Auto Repair Manual

March 4. 2009 05:39 PM

Philadelphia Speed Dating

Thanks for the article. I'm a BOG fan of asp.net

Philadelphia Speed Dating

March 5. 2009 02:02 AM

Inventory Management Software

Wow.. great tutorial..
thanks for sharing..
i want try use this code..

Inventory Management Software

March 5. 2009 07:12 AM

Savings account

If you simply flip the image 180 each way before you render the thumbnail you will get good results.

this ensures it doesnt use the embedded thumbnail that most digi cameras automatically include in every picture.

Thanks

Savings account

March 6. 2009 10:37 AM

real estate in caesarea

u made my day

real estate in caesarea

March 6. 2009 10:38 AM

car rental in israel

What a cool features! I like it.

car rental in israel

March 6. 2009 10:38 AM

jammer

love it
lol

jammer

March 6. 2009 10:38 AM

Boston movers

This is good stuff. I want to try it out.

Boston movers

March 6. 2009 10:39 AM

gmat

thank u
nice lovely marking

gmat

March 6. 2009 04:42 PM

phreakaholic

very great stuff, thanks for sharing

phreakaholic

March 9. 2009 05:01 AM

cooldude055

Thanks for sharing this post. Keep it up.

cooldude055

March 9. 2009 08:22 AM

Free Conference Call

Those are great tutorial and guide for creating great thumbnail.

These would be helpful in my free conference call site.

Free Conference Call

March 9. 2009 04:23 PM

kampanye damai pemilu indonesia 2009

what a great post, thank you for sharing Smile

kampanye damai pemilu indonesia 2009

March 10. 2009 01:52 AM

Google

thanks for sharing !Smile

Google

March 10. 2009 10:51 AM

Kampanye Damai Pemilu Indonesia 2009

thank you

Kampanye Damai Pemilu Indonesia 2009

March 13. 2009 02:57 AM

Secured Homeowner Loan

Wow it help a lot to me . Thanks for sharing the creating thumbnails... i get a good idea on you

Secured Homeowner Loan

March 13. 2009 07:07 AM

write good

thanks for this mate!

write good

March 14. 2009 07:26 AM

phreakaholic

thanks for the info sir! this is what i am looking for

phreakaholic

March 14. 2009 07:27 AM

glipmax

nice info, i am gonna try it

glipmax

March 16. 2009 07:06 AM

Dental Insurance

The reduction in file size is also considerable besides the quality of thumbnail itself. But this method involves some coding knowledge. - Ann

Dental Insurance

March 16. 2009 10:54 AM

how to write good

thanks for this!

how to write good

March 17. 2009 09:04 AM

chicken soup recipes

Thanks for taking this topic in to my attention.

chicken soup recipes

March 17. 2009 04:41 PM

Levitra Generico

Line #30... I have an Error:
// System.Drawing.Image ret = source.GetThumbnailImage(wi,hi,null,IntPtr.Zero);

Anybody knows what could happened there?

Levitra Generico

March 18. 2009 09:42 AM

Website performance

Great post and great info! Thanks for sharing all this..

Website performance

March 18. 2009 09:44 AM

Alex Numan

Many thanks for the code. Such live examples show that .Net isn't extra-hard for webmasters of average skills.

Alex Numan

March 18. 2009 09:50 AM

Hectic Capiznon Bloggers 2009

.NET is the real thing today and your post makes it more easier than it seems. I'm using it for quite sometime now and I am really convince that it is really easy to create programs using it.

Hectic Capiznon Bloggers 2009

March 18. 2009 03:41 PM

 jamming equipment

thanks for this mate!

jamming equipment

March 19. 2009 07:32 PM

Software untuk Toko

Thanks for your article, ill be waiting to the next article .... (best quality)

Software untuk Toko

March 20. 2009 07:37 AM

Siskin

Wow.. great tutorial..
thanks for sharing..
i want try use this code..

Siskin

March 20. 2009 08:25 AM

G-Land

thanks i really enjoy reading your article!!

G-Land

March 20. 2009 12:06 PM

california web design

simple yet a very informative tutorial you have here. Beginners / noobs of ASP.NET can really make use of your stuff here. Keep on doing this kind of posts, you are really helping other people.

california web design

March 20. 2009 09:59 PM

kampanye damai pemilu indonesia 2009

it's a amazing, thanks for share to me

kampanye damai pemilu indonesia 2009

March 26. 2009 02:37 AM

EDI Services

Thanks for the code. It will come in handy on a project I am working on in ASP.net and Ajax.

EDI Services

March 26. 2009 10:29 AM

Short Sale Training

Very creative content, some of the best content I have seen today. Keep up the great work.

Short Sale Training

March 26. 2009 10:30 AM

Loan Modification

I am fairly new to blogging and really appreciate your content. The article has really peaked my interest. I am going to bookmark your site and keep checking your content out.

Loan Modification

March 26. 2009 10:30 AM

Stop Foreclosure

Thank you for the work you have put into this post, it helps clear up some questions I had. I will bookmark your blog because your posts are very informative. We appreciate your posts and look forward to coming back.

Stop Foreclosure

March 26. 2009 10:30 AM

Short Sale Training

Very creative content, some of the best content I have seen today. Keep up the great work.

Short Sale Training

March 26. 2009 10:31 AM

Loan Modification

I really like the work that has gone into making the post. I will be sure to tell my blog buddies about your content keep up the good work. Thanks

Loan Modification

March 26. 2009 10:31 AM

Florida Title Company

Nicely said, I enjoy the time that it took to research and write. Great work

Florida Title Company

March 26. 2009 07:20 PM

Speed Dating Philly

I am really tired of creating the physical file, this makes it much easier thanks so much!

Speed Dating Philly

March 26. 2009 07:56 PM

animacion de fiesta

Amazing piece of information!

animacion de fiesta

March 27. 2009 10:35 AM

luxury villas seminyak

thanks for this great post and thanks for sharing this information.

luxury villas seminyak

March 27. 2009 09:36 PM

natural colon cleansing

great post, it's useful information. thanks

natural colon cleansing

March 29. 2009 11:53 AM

Cirurgia Plastica

simple yet a very informative tutorial you have here. Beginners / noobs of ASP.NET can really make use of your stuff here. Keep on doing this kind of posts, you are really helping other people.

Cirurgia Plastica

April 4. 2009 12:14 PM

magos

Thanks from Argentina!

magos

April 6. 2009 08:28 AM

cool gadgets

thanks for that post.

cool gadgets

April 8. 2009 03:20 AM

goodpeoplegives

Thanks for this great post.

goodpeoplegives

April 8. 2009 03:35 AM

cash4trends

Thanks you, this is great.

cash4trends

April 8. 2009 03:49 AM

onsuccess09

Good information.

onsuccess09

April 10. 2009 08:17 AM

http://www.purnamas.com/kampanye-damai-pemilu-indonesia-2009-blog-pemilu-republik-indonesia.html

i have been looking for this. god solutions for my job

http://www.purnamas.com/kampanye-damai-pemilu-indonesia-2009-blog-pemilu-republik-indonesia.html

April 10. 2009 08:22 AM

Kampanye Damai Pemilu Indonesia 2009

forgot to say thanks Smile

Kampanye Damai Pemilu Indonesia 2009

April 12. 2009 06:42 AM

NYC Speed Dating

Just fantastic. Great, clear code. Thanks.

NYC Speed Dating

April 12. 2009 05:34 PM

Barackoli

helpful post. Thanks

Barackoli

April 13. 2009 11:45 AM

Kampanye Damai Pemilu Indonesia 2009

I also would like to say thanks for the post

Kampanye Damai Pemilu Indonesia 2009

April 15. 2009 01:48 AM

tnomeralc web design toys

very useful and informative tips. thanks for sharing.

tnomeralc web design toys

April 16. 2009 09:31 AM

wireless network xbox 360

Wow,this is the article what I looking for, thanks buddy !!!

wireless network xbox 360

April 18. 2009 04:51 AM

Leadership

Another great post, fantastic work. Its unbelievable how small those image files are.

Leadership

April 19. 2009 10:37 PM

Melayu Boleh

i have been looking for this. god solutions for my job

Melayu Boleh

April 20. 2009 11:40 AM

free insurance quotes

hi, this is the first time i visit here, your blog is great. i really like it.

free insurance quotes

April 21. 2009 05:32 PM

California movers

greaost
realy like it

California movers

April 21. 2009 05:33 PM

Florida movers

love it thank u

Florida movers

April 22. 2009 05:11 AM

Melayu Boleh

hi, this is the first time i visit here, your blog is great. i really like it.

Melayu Boleh

April 22. 2009 07:05 PM

Payday loans

Thanks I have been wanting too do this on my sites

Payday loans

April 22. 2009 07:40 PM

Tnomeralc Web Design Toys

I found now what I am looking for. Great for thumbnail creation.!

Tnomeralc Web Design Toys

April 23. 2009 03:19 AM

Carissa Putri

very nice info, thanks.

Carissa Putri

April 23. 2009 04:58 AM

tnomeralc web design toys

Nice post! I learn something here..

tnomeralc web design toys

April 23. 2009 05:01 AM

tnomeralc web design toys

I have found this article through the google. And I found a lot of interesting tips about .NET programming..

Thank you for this post..

<a href="www.camalaniugan.com/.../">tnomeralc web design toys</a>

tnomeralc web design toys

April 23. 2009 08:54 PM

Philippines Real Estate

Just found your blog through Google, and I have to say I thoroughly enjoy your .NET tutorial.
Thank you for the info. I’m looking forward to the additional valuable information here.

Philippines Real Estate

April 24. 2009 05:01 AM

Kampanye Damai Pemilu Indonesia 2009

great information for blogger like us. Thanks for your sharing

Kampanye Damai Pemilu Indonesia 2009

April 24. 2009 11:30 PM

Online cash advance

Can you add this to PHP web directory script or would you use it to create a site to pull the tumbs from?

I guess i wlll need to play around with it if it can load the thumbs in a db then the rest is easy

Online cash advance

April 25. 2009 01:30 AM

sansian

thanks for the hellp! I've learned a lot! see more of your post soon!

sansian

April 25. 2009 01:45 AM

tnomeralc web design toys

just shadowing everyone here and checking the post out.

tnomeralc web design toys

April 25. 2009 10:41 AM

kampanye damai pemilu indonesia 2009

great tips thankyou

kampanye damai pemilu indonesia 2009

April 25. 2009 02:52 PM

müzik dinle

thanks for article

müzik dinle

April 25. 2009 04:26 PM

free ebook

Thanks for the great reference post.

free ebook

April 26. 2009 01:04 PM

GONDES

Thanks for sharing friends
nice post

GONDES

April 26. 2009 01:05 PM

Free Articles

Useful thank you

Free Articles

April 26. 2009 03:18 PM

Webakatalog

I did t know that ASÜ.net has an own thumbnail software.

Webakatalog

April 30. 2009 09:04 AM

Melayu Boleh

Hi..
i like this posts..
very useful for me..
and i think this is great tutorial..
thanks for sharing.

Melayu Boleh

May 1. 2009 03:45 PM

cewek bugil

Can you add this to PHP web directory script or would you use it to create a site to pull the tumbs from?

I guess i wlll need to play around with it if it can load the thumbs in a db then the rest is easy

cewek bugil

May 1. 2009 03:46 PM

Gosip Seleb

if you simply flip the image 180 each way before you render the thumbnail you will get good results.

this ensures it doesnt use the embedded thumbnail that most digi cameras automatically include in every picture.

Gosip Seleb

May 4. 2009 08:41 AM

Wii Games

Great post.

Wii Games

May 4. 2009 07:18 PM

sulumits retsambew

what a great code, thanks.

sulumits retsambew

May 5. 2009 02:57 AM

eriuqs spires healthy recreation

Finally i found the right code thanks for sharing this.

eriuqs spires healthy recreation

May 5. 2009 03:09 PM

biofir

that's great..
nice post thanks..

biofir

May 7. 2009 01:26 AM

Melayu Boleh News

nice info about creating thumbnails like this. I will try it to create cute thumbnails with your guides here. thanks for the great informations.

Melayu Boleh News

May 9. 2009 06:34 AM

Aumento Peniano

Are you a bad robot?

Aumento Peniano

May 15. 2009 03:41 PM

Melayu Boleh

that great post

Melayu Boleh

May 15. 2009 05:48 PM

Simulation pret immobilier

Wow thanks a lot for this great post.

Simulation pret immobilier

May 18. 2009 11:26 AM

aquabot

amazing post.

aquabot

May 21. 2009 06:56 AM

tukang nggame

good work.
thanks for sahring the code and tips above,this very useful

tukang nggame

May 23. 2009 02:05 PM

Melayu Boleh

thanks for sharing this info that is usefull

Melayu Boleh

May 26. 2009 04:05 AM

Eriuqs Spires

Great information and stuffs in here!

Eriuqs Spires

May 26. 2009 06:36 AM

angga hendra

thx 4 info...

i'll try this..

angga hendra

May 30. 2009 10:48 PM

belajar SEO para pemula

thanks for sharing this information that is usefull..

belajar SEO para pemula

June 1. 2009 01:03 AM

Blogger Make Money

It s weird, this blog doesn't have a pagerank but the traffic is really good. It's weird man....

Blogger Make Money

June 1. 2009 05:23 AM

Wisata SEO Sadau

Thx. this is usefull.

Wisata SEO Sadau

June 1. 2009 08:12 AM

RefererX | Melayu boleh Online

That really help to solve lots of website owner Smile

RefererX | Melayu boleh Online

June 3. 2009 02:57 AM

Jose Antonio Nuñez

Thank you very much, this trick is really valid, if you want your website to this top, un saludo!

Jose Antonio Nuñez

June 5. 2009 12:07 PM

Belajar SEO Para Pemula

great piece of work bro.

Belajar SEO Para Pemula

June 5. 2009 08:06 PM

Tukang Nggame

what a great info, thank you.

Tukang Nggame

June 7. 2009 10:52 PM

Kontes SEO Aristia

Yup..Blogwalking here

Kontes SEO Aristia

June 9. 2009 07:53 AM

photos

I'll try that functions.
It looks good.

photos

June 9. 2009 05:16 PM

Franchises for sale

It's interesting, the blog engine platform seems very variable in form. My design skills are not so good as my C coding though, I would be interested in seeing what additional skins you can get for it. Nice blog btw, best wishes for it and keep up the posts. Smile Kind regards, Peter sims.

Franchises for sale

June 10. 2009 12:19 PM

how to grow taller

That is a great post

how to grow taller

June 10. 2009 12:19 PM

how to grow taller

That is a great post

how to grow taller

June 10. 2009 12:20 PM

how to grow taller

That is a great post

how to grow taller

June 10. 2009 12:20 PM

how to grow taller

That is a great post

how to grow taller

June 12. 2009 02:09 AM

xbox 360 repair manual

thank you for posting...i love it..

xbox 360 repair manual

June 12. 2009 03:10 AM

Melayu Boleh Satu Malaysia

good info thanks

Melayu Boleh Satu Malaysia

June 13. 2009 08:25 PM

Koleksi Foto Bugil

I like this info, thanks friend for this information..

Koleksi Foto Bugil

June 13. 2009 08:27 PM

Foto Tante Girang

Those are great tutorial and guide for creating great thumbnail.

These would be helpful in my free conference call site.

Foto Tante Girang

June 15. 2009 05:41 AM

internet faxes

You are really a great tutor. The article you wrote bring much understanding on the subject. Thanks for sharing your knowledge here

internet faxes

June 16. 2009 04:29 PM

rallye

Nice tutorial, english is hard for me but i will try it.

rallye

June 17. 2009 05:39 PM

Belajar SEO Para Pemula

awesome thanks for your tips

Belajar SEO Para Pemula

June 18. 2009 02:49 AM

club penguin

I have a generic ashx for generating my images just using plain GetThumbnailImage...While image quality isn't the best, I haven't cared much since it's *good enough* for most of my projects. I have never even paid any attention for the image size. So I will certainly change it to use your code instead.

club penguin

June 19. 2009 08:30 PM

Sulumits Retsambew

hello, this is my first time i visit here. I found so many interesting in your blog especially its discussion. keep up the good work.

Sulumits Retsambew

June 21. 2009 06:56 AM

Seleb Bugil

Thanks For information..

Seleb Bugil

June 21. 2009 07:06 AM

Para Pemula

i was lookin' for this info.

Para Pemula

June 21. 2009 10:26 PM

Rusli Zainal Sang Visioner

Thanks for the info! It's so useful Laughing

Rusli Zainal Sang Visioner

June 21. 2009 10:28 PM

Friendship SMS

I've never use ASP.NET before, but thanks for the article

Friendship SMS

June 22. 2009 04:22 AM

Stop Dreaming Start Action

nice post about creating thumbnails like this.
I will try it to create cute thumbnails with your guides here.
thank's. it's very use full

Stop Dreaming Start Action

June 22. 2009 05:12 PM

Baltimore movers

thank u sir

Baltimore movers

June 22. 2009 05:12 PM

movers

can it be together

movers

June 22. 2009 05:13 PM

Fort Worth movers

r u together

Fort Worth movers

June 22. 2009 05:14 PM

jammer

how r u?
need more?

jammer

June 23. 2009 01:11 AM

tukang nggame

a nic tips. thanks that useful

tukang nggame

June 23. 2009 10:31 PM

payday loans

This is great and interesting! thanks for the share.

payday loans

June 26. 2009 03:51 PM

Tukang Nggame

Cool post sir

Tukang Nggame

June 27. 2009 04:53 AM

asher

nice post.. great thumbnails i think

asher

June 28. 2009 08:02 AM

Patio Lighting

thnx for the tips

Patio Lighting

June 28. 2009 12:46 PM

Jeanny

Great info... useful for me, thanks....

Jeanny

June 28. 2009 12:47 PM

Cerita Panas

I will try it to create cute thumbnails with your guides here.
thank's. it's very use full...

Cerita Panas

June 30. 2009 11:44 AM

Air Purifier

I could not find any other blog like this . I am sure the owner of this blog has make a lot of effort in order to make this useful post for visitor reading. Indeed this is a good effort and i really appreciate that. I will be coming here again in a while to look more info and to find out more news. This actually will earn some respect to the visitor when they read such a good info.

Air Purifier

June 30. 2009 08:06 PM

Stop Dreaming Start Action

Thanks for the info! It's so useful

Stop Dreaming Start Action

July 2. 2009 12:20 AM

Yoyon Sugiono

Thank for sharing...

Yoyon Sugiono

July 3. 2009 01:31 PM

self storage

Very helpful and useful info, thanks!

self storage

July 3. 2009 10:43 PM

belajar seo para pemula

thanks for share

belajar seo para pemula

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

July 3. 2009 10:58 PM

Search

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2009