多张GIF重叠的显示

E_xplorer 2008-10-09 12:21:46
遇到一个GIF显示的问题。
在网上下载了CPicture类,但其中对GIF透明部分是填充对话框颜色进行处理的。我想在一张大的GIF图上放一张小的GIF图,这样小的GIF图透明部分就变成了对话框颜色,挡住了后面的图。
哪路神仙帮帮忙,看有没有办法让GIF图透明色真正的透明。
...全文
224 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
E_xplorer 2008-10-22
  • 打赏
  • 举报
回复
问题已经解决,谢谢楼上的帮助。
E_xplorer 2008-10-13
  • 打赏
  • 举报
回复
谢谢lzg0001!
目前我也正在这方面想办法,但遇到了一个新的问题。
我们知道GIF的用RENDER来绘图的,但多张重叠的时候会造成出来的图乱七八糟。于是我想用多个HDC保存起来再将它们合成,但不知道应该怎样合成?

eee21212121 2008-10-10
  • 打赏
  • 举报
回复
试试
BOOL TransparentBlt(
HDC hdcDest, // handle to destination DC
int nXOriginDest, // x-coord of destination upper-left corner
int nYOriginDest, // y-coord of destination upper-left corner
int nWidthDest, // width of destination rectangle
int hHeightDest, // height of destination rectangle
HDC hdcSrc, // handle to source DC
int nXOriginSrc, // x-coord of source upper-left corner
int nYOriginSrc, // y-coord of source upper-left corner
int nWidthSrc, // width of source rectangle
int nHeightSrc, // height of source rectangle
UINT crTransparent // color to make transparent
);

要加上 #pragma comment (lib,"msimg32.lib")

最后一个参数crTransparent 你需要从GIF图片数据里取得对应的透明色



E_xplorer 2008-10-10
  • 打赏
  • 举报
回复
别撞冰山了,自己顶一个!
lzg0001 2008-10-10
  • 打赏
  • 举报
回复
"对GIF透明部分是填充对话框颜色进行处理的"
-----------------------------------------
在这里想办法!不要用 TransparentBlt ,那个东西很不理想,因为图片中颜色是不确定的,而且这个 API 耗时较长!

提醒你一下:用兼容 DC 可以实现。
E_xplorer 2008-10-10
  • 打赏
  • 举报
回复
我没说清楚,所有的GIF是动画的

19,468

社区成员

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

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