c# 高质量合成图片实例,避免模糊
  tx4BJPiz03I5 2023年11月02日 57 0

往一张产品图片上,加两个小标签,Demo实现最好的效果

素材例图与最终效果如下:

具体实现的代码如下:

添加引用:

using System.Drawing;
using System.Drawing.Drawing2D;

注意:如果添加命名空间没效果,加一下Nuget包 System.Drawing.Common

合成方法:

public string CombinImage( )
{
Image imgBack = Image.FromFile("D:\\mmy\\Net6WebAPIDemo\\Net6WebAPIDemo\\Img\\imgBack.jpg");
Image imgPop = Image.FromFile("D:\\mmy\\Net6WebAPIDemo\\Net6WebAPIDemo\\Img\\imgPop.png");
Image imgStar = Image.FromFile("D:\\mmy\\Net6WebAPIDemo\\Net6WebAPIDemo\\Img\\imgStar.png");

Image img = imgBack;
Graphics g = Graphics.FromImage(img);

g.SmoothingMode = SmoothingMode.AntiAlias;//最高图片平滑算法
g.InterpolationMode = InterpolationMode.HighQualityBicubic;//最高质量图像插值算法
g.CompositingQuality = CompositingQuality.AssumeLinear;//最高质量图像合成算法
g.PixelOffsetMode= PixelOffsetMode.Half;//最高质量像素偏移
g.CompositingMode = CompositingMode.SourceOver;//图片合成模式覆盖 不控制图片质量

g.DrawImage(imgPop, 0, 0, imgPop.Width, imgPop.Height);
g.DrawImage(imgStar, 0, imgPop.Height , imgStar.Width, imgStar.Height);
img.Save("D:\\mmy\\Net6WebAPIDemo\\Net6WebAPIDemo\\Img\\Merge.jpg");

// 释放资源
imgBack.Dispose();
imgPop.Dispose();
imgStar.Dispose();

return "合并结束";
}

这个合成的效果和PS直接合成几乎没有区别

其实除了这种,还有一种合成方法,

就是直接空白画布,先画背景图,再依次画上两个图片,但那个实际合成出来,整个图片色调变暗,不知道为什么

这个直接用背景图当画布,再画上两个图标就没色差

实际应用过程中,提高图片合成质量的属性不一定全要用上,也不需要全部用属性的最高值就有非常好的效果

合成质量越高,合成速度越慢

Demo设定的都是极致,合成图片少的时候没影响,如果大批量需要适当减少属性的配置,以及降低对应属性的设定值

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  NPQODODLqddb   2024年05月17日   69   0   0 .NET
  mVIyUuLhKsxa   2024年05月17日   52   0   0 .NET
  XkHDHG7Y62UM   2024年05月17日   45   0   0 .NET
  f18CFixvrKz8   2024年05月18日   85   0   0 .NET
  rBgzkhl6abbw   2024年05月18日   77   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   41   0   0 .NET
  S34pIcuyyIVd   2024年05月17日   60   0   0 .NET
  gKJ2xtp6I8Y7   2024年05月17日   50   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   39   0   0 .NET
tx4BJPiz03I5