我制作了一个应用程序,它从网络获取图像并将其与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);
将
"makeImage"渲染为Jpeg。您可能会将其作为位图返回,这会导致文件大小出现问题。将其呈现为 Jpeg 或 Png 将解决此问题。
检查
您的makeImage变量属性PixelOffsetMode,因为可能是高质量的;
添加此行:
makeImage.PixelOffsetMode= PixelOffsetMode.HighSpeed;
高速设置低质量