GDI+ 图片叠加,透明问题

syty_msyl 2010-11-17 10:36:19
使用GDI+ 绘制两张图片,第一张图片随意,第二张图片上带有黑色网状线、白底,我要隐藏白底,只显示网状线,网状线还要覆盖第一张图片,使用GDI+的透明方法后,网状线边上有明显的块状,不平滑,如何处理。


ImageAttributes imAtt;

imAtt.SetColorKey(Color(255,255,255),Color(255,255,255),ColorAdjustTypeDefault);
pDoc->m_pGraphics->SetSmoothingMode(SmoothingModeAntiAlias);
pDoc->m_pGraphics->DrawImage(&img,Rect(0,0,w,h),0,0,width,height,UnitPixel,&imAtt);





http://hi.csdn.net/attachment/201011/17/3005521_1289961118D9Dh.jpg
...全文
534 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
手机写程序 2010-11-17
  • 打赏
  • 举报
回复
可能你的图本身就不平滑,用其它抠像工具抠出来比较下.或者下面的函数有点用处.
pDoc->m_pGraphics->SetInterpolationMode(InterpolationModeHighQualityBicubic);
qsycn 2010-11-17
  • 打赏
  • 举报
回复
imAtt.SetColorKey(Color(128,128,128),Color(255,255,255),ColorAdjustTypeBitmap);

把透明颜色范围设置大一点看是否可以
syty_msyl 2010-11-17
  • 打赏
  • 举报
回复
网状线是黑颜色,底面是白颜色,然后白颜色透明 应该如何设置这两个值呢?
syty_msyl 2010-11-17
  • 打赏
  • 举报
回复
回复 hastings 不太懂什么意思,我把第二个颜色值改动后,看不到第一张图片了,完全覆盖了
qsycn 2010-11-17
  • 打赏
  • 举报
回复
SetSmoothingMode参数问题?
SmoothingModeAntiAlias8x8?SmoothingModeDefault?
hastings 2010-11-17
  • 打赏
  • 举报
回复
SetColorKey设置一个范围?
imAtt.SetColorKey(Color(255,255,255),Color(222,222,222),ColorAdjustTypeDefault);

此方法设置高低颜色键值,以便颜色范围可以成为透明的。对于任何颜色,只要它的三种颜色成分(红、绿、蓝)都处于高低颜色键的对应成分之间,它的颜色就会成为透明的。
syty_msyl 2010-11-17
  • 打赏
  • 举报
回复
回复两位 qsycn eyey1 使用非常完美谢谢

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧