什么是 WebP
WebP 是一种由 Google 开发的图像格式,主要特点有:
1. 高压缩率:比 JPEG 更小的文件大小。
2. 高图像质量:在压缩的同时保持清晰度。
3. 支持透明度:可以创建透明背景的图像。
4. 支持动画:可以制作动态图像,类似 GIF。
5. 现代浏览器兼容:大多数新浏览器支持这种格式。
WebP 适用于需要快速加载和节省带宽的网络图像。
ImageMagick 的使用
通过 ImageMagick 把一张 58M 的照片,压缩质量还是默认的 75,压缩后还有 1.2m,压缩后的文件仅占压缩前文件大小的 2%。可见效果是相当不错。
引入 ImageMagick
Install-Package Magick.NET-Q8-AnyCPU
using ImageMagick;
ConvertImageToWebP("demo.png", "demo.webp", 75);
static void ConvertImageToWebP(string inputImagePath, string outputImagePath, int quality)
{
// 读取图片
using (MagickImage image = new MagickImage(inputImagePath))
{
// 设置压缩质量
image.Quality = quality;
// 转换为 WebP 格式
image.Format = MagickFormat.WebP;
// 保存到文件
image.Write(outputImagePath);
}
}
SkiaSharp 的使用
引入 SkiaSharp
dotnet add package SkiaSharp
using SkiaSharp;
ConvertImageToWebP("demo.png", "demo.webp", 75);
static void ConvertImageToWebP(string inputImagePath, string outputImagePath, int quality)
{
// 加载输入图像
using var inputStream = new FileStream(inputImagePath, FileMode.Open);
using var inputBitmap = SKBitmap.Decode(inputStream);
// 创建一个新的 SKImage 从 SKBitmap
using var image = SKImage.FromBitmap(inputBitmap);
// 设置 WebP 编码参数 Quality,调整质量 (0-100)
var webpEncoderOptions = new SKWebpEncoderOptions() { Quality=quality};
// 编码并保存为 WebP
using var outputStream = new FileStream(outputImagePath, FileMode.Create);
using (var data = image.Encode(SKEncodedImageFormat.Webp, quality))
{
data.SaveTo(outputStream);
}
}
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧