信息发布→ 登录 注册 退出

C#怎么进行图像处理 ImageSharp库使用方法

发布时间:2025-12-15

点击量:
ImageSharp 是现代 .NET 图像处理首选库,安全无 GDI+ 依赖、支持异步与内存友好;通过 NuGet 安装主包及可选扩展,支持多格式加载/保存、链式变换(Resize/Crop/Rotate 等)、Mutate 原地操作、文字图形绘制,并需注意像素格式、using 释放与异步加载。

c#怎么进行图像处理 imagesharp库使用方法

ImageSharp 是一个开源、跨平台、高性能的 .NET 图像处理库,相比 System.Drawing(已不推荐用于 Web 环境),它更安全、无依赖系统 GDI+、支持异步、内存友好,是 C# 图像处理的现代首选。

安装 ImageSharp

通过 NuGet 安装核心包:

  • ImageSharp:主库(含基础加载/保存/变换)
  • 可选:ImageSharp.Drawing(绘图、文字、形状)
  • 可选:ImageSharp.Web(ASP.NET Core 集成,如动态缩略图中间件)

命令行安装:

dotnet add package SixLabors.ImageSharp

基础图像加载与保存

支持常见格式(JPEG、PNG、GIF、BMP、WebP 等),自动识别格式,无需指定扩展名。

  • 从文件加载:using var image = Image.Load("photo.jpg");
  • 从流加载:using var image = Image.Load(stream);
  • 保存为 JPEG(质量可控):image.S*e("out.jpg", new JpegEncoder { Quality = 85 });
  • 保存为 PNG(默认无损):image.S*e("out.png");

注意:所有操作都基于 Image<rgba32></rgba32>(默认 32 位 RGBA 像素格式),也可显式指定其他像素类型(如 Image<l8></l8> 灰度图)。

Delphi 7应用编程150例 全书内容 CHM版 Delphi 7应用编程150例 全书内容 CHM版

Delphi 7应用编程150例 CHM全书内容下载,全书主要通过150个实例,全面、深入地介绍了用Delphi 7开发应用程序的常用方法和技巧,主要讲解了用Delphi 7进行界面效果处理、图像处理、图形与多媒体开发、系统功能控制、文件处理、网络与数据库开发,以及组件应用等内容。这些实例简单实用、典型性强、功能突出,很多实例使用的技术稍加扩展可以解决同类问题。使用本书最好的方法是通过学习掌握实例中的技术或技巧,然后使用这些技术尝试实现更复杂的功能并应用到更多方面。本书主要针对具有一定Delphi基础知识

Delphi 7应用编程150例 全书内容 CHM版 1 查看详情 Delphi 7应用编程150例 全书内容 CHM版

常用图像变换操作

链式调用,操作不修改原图(返回新图像),适合组合使用:

  • 调整尺寸:image.Clone(x => x.Resize(800, 600, ResizeMode.Max))(支持多种缩放模式)
  • 裁剪:.Crop(new Rectangle(100, 50, 400, 300))
  • 旋转:.Rotate(90)(角度,支持负值)
  • 翻转:.Flip(FlipMode.Horizontal)
  • 灰度化:.Mutate(x => x.Grayscale())Mutate 原地修改,节省内存)
  • 高斯模糊:.Mutate(x => x.GaussianBlur(sigma: 2f))

建议对简单变换优先用 Mutate,避免频繁克隆;复杂流水线可用 Clone + 链式。

绘制文字与图形(需 ImageSharp.Drawing)

添加包:dotnet add package SixLabors.ImageSharp.Drawing

  • 绘制文本:.Mutate(x => x.DrawText("Hello", font, color, new PointF(10, 10)))
  • 绘制矩形:.DrawRectangle(Pens.Solid(Color.Red, 2), rect)
  • 绘制圆角矩形、椭圆、路径等也均支持
  • 字体需先加载:var font = SystemFonts.CreateFont("Arial", 16);(或使用 FontCollection 加载自定义 .ttf)

基本上就这些。ImageSharp API 清晰、文档完善(官网有完整示例),上手不难但细节多——比如像素格式选择、内存释放(务必用 usingDispose())、异步加载(Image.LoadAsync)等,用熟后处理万级图片也没压力。

以上就是C#怎么进行图像处理 ImageSharp库使用方法的详细内容,更多请关注其它相关文章!


相关文章: taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  小米Civi 4录制视频过暗_小米Civi 4亮度优化  黑猫投诉统一入口官网 消费者权益保护投诉平台  优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率  Lar*el DB::listen 事件中的查询执行时间单位解析  漫蛙2网页版漫画入口 漫蛙漫画在线官方登录  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  J*aScript设计模式实践_j*ascript代码优化  在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案  怎么在mac上运行html代码_mac运行html代码方法【指南】  Go语言中高效处理x-www-form-urlencoded表单数据  晋江读书网页版在线登录 晋江读书电脑版官网  解决J*aScript中重复选择项的确认对话框显示问题  Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖  拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达  Python模块化编程:有效管理依赖与避免循环引用  深入理解J*a链表中的IPosition接口与使用  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值  Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】  iCloud登录入口网页版 苹果iCloud官网登录  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题  CSS图片焦点样式实现教程:理解与应用tabindex属性  Python大型XML文件高效流式解析教程  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  小红书商家版怎样在笔记嵌入商品卡路径_小红书商家版在笔记嵌入商品卡路径【挂载教程】  J*a TimerTask文件监控:HashMap状态管理与常见陷阱规避指南  J*aScript数组对象转换:按指定键分组与值收集  深入理解Go语言中的指针类型:以*string为例  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践  Excel Power Pivot如何处理XML数据源 构建高级数据模型  Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  PHP文件上传至S3:策略、考量与避免本地存储的挑战  12306选座系统怎么选连座_12306选座多人连坐操作方法  PHP表单隐藏域数据传递:常见问题与最佳实践  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  圆通快递查询实时追踪 圆通物流包裹状态快速查看  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比  Python Socket多播通信中指定源IP地址的实践指南  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  如何使用纯J*aScript判断Input元素是否在特定类容器内  《GTA6》开发画面疑似泄露!这次可不是AI了  汽水音乐在线版入口_汽水音乐网页播放手册  微信客户端如何收红包_微信客户端接收红包使用教程  如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!  GemBox Document HTML转PDF垂直文本渲染问题及解决方案 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!