我制作了一个应用程序,它从网上获取图像并将其与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);
答案 0 :(得分:2)
将“makeImage”渲染为Jpeg。您可能将其作为位图返回,这会导致您的文件大小问题。将其渲染为Jpeg或Png将解决此问题。
答案 1 :(得分:1)
在你的makeImage变量中检查属性PixelOffsetMode,因为它可能在HighQuality中;
添加以下行:
makeImage.PixelOffsetMode = PixelOffsetMode.HighSpeed;
HighSpeed设置低质量