Solved

Why in a resize process, the System.Drawing.Bitmap.Save method create a larger file than original??

Posted on 2008-09-29
3
430 Views
Last Modified: 2013-11-07
I'm doing a resize function in c#, when I resize a file image with sizes: 2832x2128 weights 1.62MB, the result of doing Bitmap.Save is a file with sizes: 1024x768px, but the weight of the new file is 1.74MB, which i don't understand why happens.

the code is the following:
public System.Drawing.Bitmap CopyBitmap(Bitmap source, Rectangle part)

        {

            Bitmap bmp = new Bitmap(part.Width, part.Height, source.PixelFormat);

            Graphics g = Graphics.FromImage(bmp);

            g.DrawImage(source, part.X, part.Y, part.Width, part.Height);

            g.Dispose();

            return bmp;

        }
 
 

public void redim()

{

Bitmap bmpOrig = new Bitmap("c:\\original.jpg"); // file 2832x2128, 1.62MB
 

            int newWidth = bmpOrig.Width;

            int newHeight = bmpOrig.Height;

            float relacionAspecto = 0;
 

            if (bmpOrig.Width > bmpOrig.Height)

            {
 

                newWidth = 1024;

                relacionAspecto = (float)((float)bmpOrig.Height / bmpOrig.Width);

                newHeight = (int)Math.Round(newWidth * relacionAspecto);

            }

            else

            {
 

                newHeight = 1024;

                relacionAspecto = (float)((float)bmpOrig.Width / bmpOrig.Height);

                newWidth = (int)Math.Round(newHeight * relacionAspecto);

            }
 
 

            Bitmap nueva = CopyBitmap(bmpOrig, new Rectangle(0, 0, newWidth, newHeight));
 

            bmpOrig.Dispose();
 

            nueva.Save(@"C:\resize.jpg"); // file with 1024x768, 1.74MB
 

            nueva.Dispose();

}

Open in new window

0
Comment
Question by:DavinchiSAT
3 Comments
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 500 total points
ID: 22597885
It's because you are NOT saving the new image as a JPG!

    nueva.Save(@"C:\resize.jpg"); // file with 1024x768, 1.74MB

What your code above actually does is create a Bitmap file with a ".jpg" extension.  =\

You need to use the SECOND parameter to Bitmap.Save() to specify the JPEG format:
http://msdn.microsoft.com/en-us/library/9t4syfhh.aspx

    nueva.Save(@"c:\resize.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
0
 
LVL 3

Expert Comment

by:Diveblue
ID: 22597895
Since you created the bitmap from a file, the image was decompressed using whatever format compressed the file to begin with.  Now you can use the overload() of BitMap.Save() to specify an ImageFormat property that changes the image type from JPEG to GIF or TIFF or PNG or BMP, etc.  Using the overload of BitMap.Save that takes Codec arguments may allow you greater control over the specific compression algorithm used to save the file.

0
 

Author Comment

by:DavinchiSAT
ID: 22597929
it works!!!!!!!!!!!!!!!!!!!,

tnks!!!!

got the points!!
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now