【问题标题】:How can I resize an Image from remote URL before saving it如何在保存之前从远程 URL 调整图像大小
【发布时间】:2014-08-20 14:10:34
【问题描述】:

这是我保存图像的代码。该代码工作正常,我对此没有任何问题。

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 个图像完成,我不希望我的服务器耗尽磁盘空间。

【问题讨论】:

标签: c# image resolution


【解决方案1】:

有很多方法可以做到这一点,但最简单的可能是使用 GDI+ 和 Graphics 类。

使用Bitmap.FromStream 下载流并从中创建位图对象,而不是下载文件。

然后创建一个具有您想要的尺寸的新位图,并使用Graphics.FromImage 创建一个将绘制到该图像的图形对象。

最后使用Graphics.DrawImage将下载的图片绘制到新的图片上。将调整大小的图像的尺寸传递给该方法,您将获得一个包含已调整大小的图像的 Bitmap 对象,该对象已准备好写入磁盘。

注意:我目前无法设置完整的示例,但这应该足以让您整理出来。

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2011-09-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2020-02-16
    • 2014-03-07
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多