首页 新闻 会员 周边 捐助

如何解决C# g.DrawImage(Logo, rtan);合成图片模糊的问题

-1
[已解决问题] 解决于 2014-12-16 12:18

//设置高质量查值法
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

                //设置高质量,低速度呈现平滑程度
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

这个解决方案不行

WYan13的主页 WYan13 | 初学一级 | 园豆:42
提问于:2014-12-15 15:28
< >
分享
最佳答案
-1

g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    g.CompositingQuality = CompositingQuality.HighQuality;

 

这几个都改成最低。

奖励园豆:5
Launcher | 高人七级 |园豆:45050 | 2014-12-15 18:07

最低?什么意思啊?有点不懂你的意思

WYan13 | 园豆:42 (初学一级) | 2014-12-15 18:40

@双子394: InterpolationMode.Low  SmoothingMode.HighSpeed CompositingQuality.HighSpeed

Launcher | 园豆:45050 (高人七级) | 2014-12-16 09:19

@Launcher: 为什么要设为最低啊?解释一下呗

WYan13 | 园豆:42 (初学一级) | 2014-12-16 09:35

@双子394: 你现在测试下效果。

Launcher | 园豆:45050 (高人七级) | 2014-12-16 09:46

@Launcher: 不行,已经测了,没有清晰的效果

WYan13 | 园豆:42 (初学一级) | 2014-12-16 10:22

@双子394: 你这个“合成图片”具体是指什么?是说将图片 A 和图片 B 叠加在一起吗?

Launcher | 园豆:45050 (高人七级) | 2014-12-16 11:12

@Launcher: 已经解决了,谢谢你的耐心回复,你有时间能帮我看看今天提的那个字体样式的问题吗?

WYan13 | 园豆:42 (初学一级) | 2014-12-16 12:18

@WYan13: 解决了能说一下答案?

LoveCoder | 园豆:218 (菜鸟二级) | 2020-04-15 10:53
其他回答(1)
0

也不放你的代码, 反也就是SmoothingMode、CompositingQuality、InterpolationMode 这三个属性可控制质量。 

问天何必 | 园豆:3311 (老鸟四级) | 2014-12-15 16:35

请教了,帮忙看一下吧,多谢了,生成后的图片会比原图模糊点

 

Bitmap bm = new Bitmap(int.Parse(sRow["width"].ToString()), int.Parse(sRow["height"].ToString()));
                //新建一个画板
                Graphics g = System.Drawing.Graphics.FromImage(bm);
                //清空画布以指定颜色填充
                //g.Clear(Color.Orange);
                g.Clear(ColorTranslator.FromHtml("#FFFFFF"));

                //背景
                Image bitBackground = Image.FromFile(TempimgPath + @"tempImg\1.jpg");

                //logo
                Image Logo = Image.FromFile(TempimgPath + @"tempImg\1.jpg");
                //;
                //图片
                Image Img = Image.FromFile(TempimgPath + @"tempImg\1.jpg");

                //背景
                DataTable dtBackground=TemplateImageRules.GetAllByTemplateIDAndType(CreativeID,1,int.Parse(sRow["ID"].ToString()));

foreach (DataRow item in dtBackground.Rows)
                {
                    if (item["strR1"].ToString() != "")
                    {
                        //g.Clear(Color.Orange);
                        g.Clear(ColorTranslator.FromHtml(item["strR1"].ToString()));
                    }
                    bitBackground = Image.FromFile(Server.MapPath("~\\ImageInfo\\" + item["strR2"].ToString()));
                    Rectangle rtan = new Rectangle(int.Parse(item["Xcoordinates"].ToString()), int.Parse(item["Ycoordinates"].ToString()), bitBackground.Width, bitBackground.Height);
                    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    g.CompositingQuality = CompositingQuality.HighQuality;
                    g.DrawImage(bitBackground, rtan);
                }

支持(0) 反对(0) WYan13 | 园豆:42 (初学一级) | 2014-12-15 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册