开源.NetCore通用工具库Xmtool使用连载 - 图像处理篇

【Github源码】

《上一篇》 介绍了Xmtool工具库中的扩展动态对象,今天我们继续为大家介绍其中的图像处理类库。

在我们的软件系统中,经常需要对图片进行各种各样的处理;例如最常见的头像缩放,需要将用户上传的图片缩放成系统需要的最佳大小。本工具包主要将常用的图片方法进行汇总,方便开发者使用。目前包中只提供了图片缩放和图片生成base64字符串的方法,后续根据需要会持续增加。

对图片文件进行缩放

对图片数据流进行缩放

将图片文件转换成Base64字符串

将图片数据流转换成Base64字符串

将Image对象内容转换成Base64字符串

1. 对图片文件进行缩放

public Image Resize(string originFile, int height, int width, bool keepRatio, bool getCenter)

说明:将原始图片文件缩放成指定宽高,并返回生成后的图片对象。

c# 复制代码
ImageTool tool = Xmtool.Image();
Image result = tool.Resize("c:\avatar.png", 200, 200, true, true);
// TODO

2. 对图片数据流进行缩放

public Image Resize(Stream stream, int height, int width, bool keepRatio, bool getCenter)

说明:将图片数据流缩放成指定宽高,并返回生成后的图片对象。

c# 复制代码
ImageTool tool = Xmtool.Image();
using (FileStream stream = new FileStream("c:\avatar.png", FileMode.Open, FileAccess.Read))
{ 
	Image result = tool.Resize(stream, 200, 200, true, true);
	// TODO
}

3. 将图片文件转换成Base64字符串

public string ToBase64(string file)

说明:将指定图片文件内容转换成Base64字符串并返回。

c# 复制代码
ImageTool tool = Xmtool.Image();
string base64str = tool.ToBase64("c:\avatar.png");
// TODO

4. 将图片数据流转换成Base64字符串

public string ToBase64(Stream stream)

说明:将图片数据流转换成Base64字符串并返回。

c# 复制代码
ImageTool tool = Xmtool.Image();
using (FileStream stream = new FileStream("c:\avatar.png", FileMode.Open, FileAccess.Read))
{ 
	string base64str = tool.ToBase64(stream);
	// TODO
}

5. 将Image对象内容转换成Base64字符串

public string ToBase64(Image image)

说明:将Image对象内容转换成Base64字符串并返回。

c# 复制代码
Image image = Image.FromFile("c:\avatar.png");
ImageTool tool = Xmtool.Image();
string base64str = tool.ToBase64(image);
// TODO

[【Github源码】](https://github.com/softwaiter/Xmtool)

相关推荐
代码拾光3 天前
面试官:如果某个业务量突然提升100倍QPS你会怎么做?
.net core·架构设计
WikeSoft3 天前
1.net core 工作流WorkFlow流程(介绍)
.net·.net core·workflow·流程引擎
hez20104 天前
用 .NET NativeAOT 构建完全 distroless 的静态链接应用
c#·.net·aot·.net core·native
EdisonZhou9 天前
使用MCP C# SDK开发MCP Server + Client
llm·aigc·asp.net core·.net core
黑贝是条狗14 天前
对.net 的改变
.net core
小吴同学·18 天前
NET6 WebApi第5讲:中间件(源码理解,俄罗斯套娃怎么来的?);Web 服务器 (Nginx / IIS / Kestrel)、WSL、SSL/TSL
中间件·c#·.net·.netcore·.net core
坐望云起20 天前
ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新
前端·后端·asp.net·mvc·.net core·razor pages
代码拾光1 个月前
.NET Core 中如何实现缓存的预热?
.net core
EdisonZhou1 个月前
基于Microsoft.Extensions.AI核心库实现RAG应用
llm·aigc·.net core
时光追逐者1 个月前
一个开源且免费的 .NET CMS 和应用程序框架
开源·c#·.net·cms·.net core