如何在一个Label上画Gif图

广印大叔 2008-03-04 01:35:23

如果是BMP的图的话,可以把它编到mbm文件中并按照如下方式使用
gc.BitBlt(TPoint(0, 0), iBitmap);

现在问题是这样的 我现在有一个Gif小图 我要把它画在一个Label上面,因为Gif有一部分是Alpha透明的,需要把背景透上来。

不知道应该如何处理?

请指教!
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
matchboy 2008-03-21
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
有一个函数TransparentBlt,可以实现把gif图片透明到label上。mobile上是这样实现的。另外,Bitblt也可以实现把位图的指定部分截取出来
dyw 2008-03-14
  • 打赏
  • 举报
回复
Gif animation for symbian 2nd and 3rd edition phones
http://wiki.forum.nokia.com/index.php/Gif_animation_for_symbian_2nd_and_3rd_edition_phones

如果使用位图,搞个定时器,按顺序不断绘制每个图便是。
广印大叔 2008-03-11
  • 打赏
  • 举报
回复
再次顶起来
广印大叔 2008-03-06
  • 打赏
  • 举报
回复
呵呵
alexlee002 2008-03-05
  • 打赏
  • 举报
回复
3rd:drawBitMapMask()
2nd BitBltMask()
jmulxg 2008-03-05
  • 打赏
  • 举报
回复
只能 mark,等答案
广印大叔 2008-03-05
  • 打赏
  • 举报
回复
首先,不用Gif图了

我现在用bmp图来实现

我的背景图片为240×200的
Label的大小也为240×200

我要在位置为TPoint(40, 0)的位置画一个40×40的Mask图 也就是 透明的图 需要把背景图透上来

我们先来分析一下下面这个函数
BitBltMasked(const TPoint& aPoint,const CFbsBitmap* aBitmap,const TRect& aSourceRect,const CFbsBitmap* aMaskBitmap,TBool aInvertMask);
第一个参数 画图的位置
第二个参数 原图 也就是背景图
第三个参数 在原图的什么位置画遮罩也就是Mask图
第四个参数 Mask图
第五个参数 先不关注

如果Mask比原图小的话 就会平铺

要通过此函数实现的话我可以这么实现
BitBltMasked(TPoint(40, 0), aBitmap, TRect(TPoint(0, 0), aMaskBitmap->SizeInPixcels()), aMaskBitmap, ETrue);

aBitmap 是我从原图40,0的位置拷贝下来的大小为aMaskBitmap->SizeInPixcels()的图

这样做是肯定可以实现的 但是我的问题在于如何在原图上面复制下来一部分做为新图?

或许各位另有高见,请指教!

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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