
图像调整大小是图像处理中的一种常见操作,在各种场景中都非常有用,例如为网络发布准备图像、生成缩略图或减少文件大小。在本文中,我们将探讨如何在 C# 中调整图像大小。您将学习如何调整 JPG 或 PNG 等光栅图像的大小,执行比例调整大小,以及如何精确处理 SVG 等矢量图像。
为什么在C#中调整图像大小?
以编程方式调整图像大小使您能够自动化和扩展图像处理任务,而无需手动干预。以下是一些为什么这很必要的原因:
- 它有助于优化图像大小,以减少Web应用程序的加载时间和带宽使用。
- 确保在各种平台和屏幕尺寸上保持一致的显示。
- 帮助动态生成图像预览和缩略图。
- 允许在文档生成、归档或出版等工作流程中进行自动图像调整。
调整图像大小 - C# API 安装
您可以使用以下 NuGet 安装命令在您的系统中安装最新的稳定版本 Conholdate.Total for .NET:
PM> NuGet\Install-Package Conholdate.Total
在 C# 中调整图像大小
让我们从使用固定尺寸对 JPG 等光栅图像进行基本调整大小开始,使用 C#。只需按照以下步骤操作:
- 从文件加载 JPG 图像,使用 Image.Load().
- 调用 Resize() 方法将宽度和高度设置为各 300 像素。
- 使用 image.Save() 保存调整大小后的图像。
以下示例代码演示了 C# 中的图像调整大小:
// 加载图像
using (Image image = Image.Load("aspose-logo.jpg"))
{
// 调整图像大小并保存调整后的图像
image.Resize(300, 300);
image.Save("SimpleResizing_out.jpg");
}
在 C# 中按比例调整图像大小
本节演示如何在 C# 中调整 PNG 图像的大小,同时保持其原始纵横比。
- 使用 Image.Load() 加载 PNG 图像。
- 检查图像是否已缓存;如果没有,则调用 CacheData() 以提高性能。
- 将当前的宽度和高度除以 2,以计算新的比例尺寸。
- 使用 ResizeWidthProportionally() 和 ResizeHeightProportionally() 来保持纵横比。
- 使用 image.Save() 方法保存调整大小后的图像。
以下代码片段展示了 C# 中的按比例图像调整大小:
// 加载图像
using (Image image = Image.Load("aspose-logo.png"))
{
// 缓存图像数据
if (!image.IsCached)
{
image.CacheData();
}
// 指定宽度和高度
int newWidth = image.Width / 2;
image.ResizeWidthProportionally(newWidth);
int newHeight = image.Height / 2;
image.ResizeHeightProportionally(newHeight);
// 保存图片
image.Save("ResizeImageProportionally_out.png");
在 C# 中调整矢量图像的大小
此示例说明如何在 C# 中调整矢量图像 (SVG) 的大小::
- 使用 Image.Load() 加载 SVG 矢量图像。
- 将当前的宽度和高度分别乘以缩放因子(10 和 15)。
- 调用 Resize() 并传入新的宽度和高度。
- 使用 image.Save() 以 PngOptions 将调整大小后的图像保存为 PNG。
- 指定 SvgRasterizationOptions 以确保矢量图像的正确渲染。
下面的代码示例说明了如何在 C# 中调整矢量图像的大小:
// 加载图像
using (Image image = Image.Load("image.svg"))
{
// 将图像调整为 PNG 格式
image.Resize(image.Width * 10,image.Height * 15);
image.Save("Logotype_10_15.png", new PngOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
});
}
免费评估许可证
您可以通过获取 免费临时许可证 来评估这些以及 API 提供的许多其他功能。
总结
图像调整大小是管理、显示或导出视觉内容的应用程序的基本功能。通过 Conholdate.Total for .NET,在 C# 中调整图像大小变得高效且对开发人员友好。它支持多种格式,并提供对调整大小行为的精细控制,无论您是使用固定尺寸、保持纵横比,还是转换矢量图像。 如果您有任何问题,请随时通过 forum 与我们联系。