.NET图片秒转WebP类库推荐

什么是 WebP

WebP 是一种由 Google 开发的图像格式,主要特点有:

1. 高压缩率:比 JPEG 更小的文件大小。

2. 高图像质量:在压缩的同时保持清晰度。

3. 支持透明度:可以创建透明背景的图像。

4. 支持动画:可以制作动态图像,类似 GIF。

5. 现代浏览器兼容:大多数新浏览器支持这种格式。

WebP 适用于需要快速加载和节省带宽的网络图像。

.NET 图片秒转 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);
	}
} 

 

 

 

 

 

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...