c# bitmap压缩导致png不透明的问题解决
2023-12-13 06:42:51
新建.net 6控制台项目
安装System.Drawing.Common包
代码如下
using System.Drawing;
using System.Drawing.Imaging;
namespace PngCompress02
{
internal class Program
{
static void Main(string[] args)
{
CompressPngImage(@"E:\Desktop\6.png", @"E:\Desktop\6_60.png", 60);
Console.WriteLine("完成");
}
public static void CompressPngImage(string sourcePath, string targetPath, long quality)
{
using (var image = Image.FromFile(sourcePath))
{
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
var imageCodecInfo = GetPngImageCodec();
//var imageFormat = ImageFormat.Png;
Bitmap bitmap = new Bitmap(image);
bitmap.Save(targetPath, imageCodecInfo, encoderParameters);
}
}
private static ImageCodecInfo GetPngImageCodec()
{
var codecs = ImageCodecInfo.GetImageEncoders();
foreach (var codec in codecs)
{
if (codec.FormatID == ImageFormat.Png.Guid)
{
return codec;
}
}
throw new ArgumentException("No PNG image codec found.");
}
}
}
测试结果
文章来源:https://blog.csdn.net/qq_36437991/article/details/134951760
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!