混合2个图像并增加新一代图像的尺寸

时间:2014-01-05 10:48:05

标签: c#

我制作了一个应用程序,它从网上获取图像并将其与My Hard中的图像混合并生成新图像。我的问题是在这个过程之后增加新的照片尺寸。例如,如果主照片是50X50像素,50kb之后,此操作新图像是相同的50X50像素,但它的新尺寸是400kb!

请帮我解决这个可怕的问题 我用这种方法来混合这个图像:

HttpWebRequest MakeRequest = (HttpWebRequest)HttpWebRequest.Create(ImageURL);
HttpWebResponse Respnse = (HttpWebResponse)MakeRequest.GetResponse();
Stream Streaming = Respnse.GetResponseStream();
Image ImageNews = Image.FromStream(Streaming);

imgToResize = ImageNews;


Image Logo = Image.FromFile("d:\\logonews.jpg");

Bitmap NewsMainImage = new Bitmap(ImageNews.Width, ImageNews.Height);
Graphics makeImage = Graphics.FromImage(NewsMainImage);
makeImage.DrawImage(ImageNews, 
                     new Rectangle(new Point(), ImageNews.Size), 
                     new Rectangle(new Point(), ImageNews.Size),  
                    GraphicsUnit.Pixel);


makeImage.DrawImage(Logo, 
                    new Rectangle(new Point(0, ImageNews.Height - Logo.Height),  
                                  Logo.Size),  
                    new Rectangle(new Point(), 
                                  Logo.Size),  
                    GraphicsUnit.Pixel);

2 个答案:

答案 0 :(得分:2)

将“makeImage”渲染为Jpeg。您可能将其作为位图返回,这会导致您的文件大小问题。将其渲染为Jpeg或Png将解决此问题。

答案 1 :(得分:1)

在你的makeImage变量中检查属性PixelOffsetMode,因为它可能在HighQuality中;

添加以下行:

makeImage.PixelOffsetMode = PixelOffsetMode.HighSpeed;

HighSpeed设置低质量