0

0

C# WebP图片转换 C#如何将JPEG或PNG文件转换为WebP格式

幻夢星雲

幻夢星雲

发布时间:2026-03-16 15:34:31

|

998人浏览过

|

来源于php中文网

原创

.NET原生不支持WebP编码,ImageSharp 2.x是跨平台稳定方案;转换需注意Alpha通道设置、质量参数、内存控制及服务器MIME配置。

c# webp图片转换 c#如何将jpeg或png文件转换为webp格式

WebP编码需要第三方库,.NET原生不支持

从 .NET 6 开始,System.Drawing 仍不支持 WebP 编码(仅部分解码),ImageSharp 是目前最稳定、跨平台、无系统依赖的方案。别试 System.Drawing.Common + GDI+,它在 Linux/macOS 上会直接抛 PlatformNotSupportedException,Windows 上也常因缺少编解码器失败。

  • 推荐用 ImageSharp 2.x(最新稳定版),它内置 WebP 编码器,无需额外安装 native 库
  • 避免用过时的 libwebp P/Invoke 封装,维护成本高、易出内存泄漏
  • 若项目已用 SkiaSharp,它也能转 WebP,但体积大(含原生 skia 库),且默认不启用 WebP 编码,需手动调 SkiaSharp.WebP 包并注册编码器

用 ImageSharp 将 JPEG/PNG 转为 WebP(含质量与透明度控制)

核心是加载源图 → 创建 WebP 编码选项 → 保存。注意:PNG 带 Alpha 通道时,必须设 UseAlphaCompression = true,否则透明区域变黑;JPEG 没 Alpha,设了也无效,但无害。

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Webp;

using var image = Image.Load("input.jpg");
image.Save("output.webp", new WebpEncoder
{
    Quality = 80,                    // 0–100,建议 75–90 平衡体积与画质
    UseAlphaCompression = true,      // PNG 必须开;JPEG 可忽略
    Lossless = false,                // true 时 Quality 被忽略,文件大但无损
    Method = WebpEncodingMethod.BestSpeed // 或 BestCompression / Default
});
  • Quality = 80 对多数网页图足够,低于 60 易见块状伪影
  • Lossless = true 适合图标、截图等小图,但 WebP 无损通常比 PNG 大 10%–30%,别盲目开启
  • Method = BestSpeed 编码快但体积略大;BestCompression 更慢但省 5%–15% 空间,批量处理时建议设为 Default

批量转换时注意内存与线程安全

ImageSharpImage.Load() 默认把整张图读进内存,10MB 的 PNG 可能占 40MB+ 托管内存(RGBA 各占 1 字节)。并发转多图时不加限制,容易触发 GC 频繁或 OutOfMemoryException

Seed-Music
Seed-Music

字节跳动推出的AI音乐生成与编辑工具

下载
  • using var image = Image.Load(...) 确保及时释放,别用静态 Image 实例
  • 批量任务建议限流:每批最多 4 张图并发(CPU 核心数一半),避免 I/O 和 CPU 双瓶颈
  • 大图(>4000px)考虑先缩放再转:image.Mutate(x => x.Resize(width, height, KnownResamplers.Lanczos3)),Lanczos3 锐度好,但比 Box 慢 3 倍
  • 别在 ASP.NET Core Action 里直接转——同步 IO 会阻塞线程池,改用 SaveAsync() + FileStream

常见错误:输出文件为空或打不开

最常见三个原因:路径权限不足、目标目录不存在、编码器未正确配置。WebP 文件头损坏时,浏览器报 ERR_INVALID_RESPONSE,而不是明确提示格式错。

  • 检查 output.webp 文件大小是否为 0 字节——大概率是目标路径不可写,或父目录不存在(Save() 不自动创建父目录)
  • 确认输入文件不是 CMYK 模式 JPEG(ImageSharp 不支持),会静默失败,加 try/catch 捕获 ImageFormatException
  • Linux 容器中若报 Unable to load shared library 'libwebp'...,说明误用了旧版封装;ImageSharp 2.x 完全托管,不依赖 libwebp.so
  • WebP 文件被 Nginx/Apache 拒绝服务?检查服务器是否配置了 webp MIME 类型:image/webp
实际转换逻辑本身很简单,难的是边界情况:大图内存、透明通道处理、并发控制、部署环境兼容性。这些地方没卡点,剩下的就是套参数调参了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

248

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

522

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

610

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

245

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

739

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3619

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

57

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

74

2026.01.13

minimax入口地址汇总
minimax入口地址汇总

本专题整合了minimax相关入口合集,阅读专题下面的文章了解更多详细地址。

2

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 11.4万人学习

C 教程
C 教程

共75课时 | 5.5万人学习

C++教程
C++教程

共115课时 | 22.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号