无损图片缩放
1 public static void SaveThumbnail(Bitmap originBitmap, int width, int height, string filename) 2 { 3 using (var newImage = new Bitmap(width, height)) 4 { 5 using (var graphic = GetGraphic(originBitmap, newImage)) 6 { 7 graphic.DrawImage(originBitmap, 0, 0, width, height); 8 9 10 ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); 11 ImageCodecInfo ici = null; 12 foreach (ImageCodecInfo codec in codecs) 13 { 14 if (codec.MimeType.IndexOf("png") > -1) 15 ici = codec; 16 } 17 EncoderParameters encoderParams = new EncoderParameters(); 18 long[] qualityParam = new long[1]; 19 qualityParam[0] = 100; 20 EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qualityParam); 21 encoderParams.Param[0] = encoderParam; 22 23 newImage.Save(filename, ici, encoderParams); 24 } 25 } 26 } 27 28 private static Graphics GetGraphic(Image originImage, Bitmap newImage) 29 { 30 newImage.SetResolution(originImage.HorizontalResolution, originImage.VerticalResolution); 31 var graphic = Graphics.FromImage(newImage); 32 graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 33 graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 34 graphic.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 35 graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 36 return graphic; 37 }
看了dudu的,但是调用报错,稍作修改
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述