这是我保存图片的代码。代码工作正常,我没有问题。
Guid id = Guid.NewGuid();
string strRealname = Path.GetFileName(ImageUrl);
string exts = Path.GetExtension(ImageUrl);
WebClient webClient = new WebClient();
webClient.DownloadFile(ImageUrl, Server.MapPath("~/Images/") + id + exts);
我希望能够根据我的SET尺寸保存图像。例如:我下载的图片是600x300。我想保留原始尺寸(2:1)并将其保存为400x200。我怎么能这样做?
编辑:也许我应该强调这一点。我不想保存来自URl的原始图像。一些图像的宽度或高度超过1000像素。我想在保存之前缩减这个。这将完成1000个图像,我不希望我的服务器耗尽磁盘空间。
答案 0 :(得分:3)
有很多方法可以做到这一点,但最简单的方法可能是使用GDI +和Graphics
类。
不是下载文件,而是使用Bitmap.FromStream
下载流并使用该文件创建一个Bitmap对象。
然后使用您想要的尺寸创建一个新的位图,并使用Graphics.FromImage
创建一个将绘制到该图像的Graphics对象。
最后使用Graphics.DrawImage
将下载的图像绘制到新图像。将调整大小后的图像的尺寸传递给方法,您将获得一个Bitmap对象,其中包含已准备好写入磁盘的已调整大小的图像。
注意:我目前无法设置完整的示例,但这应该足以让您对其进行排序。