大隐于市

用艺术的眼光看待编程!

孙东风ID:dongfengsun
129284次访问,排名613好友5人,关注者31
03年从西安交通大学毕业后一直从事移动平台的开发工作。崇尚一切自由的东西,热爱交流。目前专注于手机二维码技术研究并负责技术管理工作,希望能和同行认识、交流、共享。
dongfengsun的文章
原创 73 篇
翻译 2 篇
转载 32 篇
评论 142 篇
孙东风的公告
原创文章转载请注明出处
QQ :372590353
MSN:sundongfeng1227@hotmail.com
  我的EMAIL



最近评论
ljmjava:我在无线领域干了5年了,大大小小的公司接触了很多,还没发现有自己技术的公司,呵呵。感觉高端技术不再国内。国内还都是一帮搞应用的。
我想无线企业的真正的洗牌还没开始吧。
小明:你好!能不能把代码 也发给我一份
邮箱:anming621@163.com
谢谢啦
小明:你好!能不能把代码 也发给我一份
邮箱:anming621@163.com
谢谢啦
ddd999ddd:楼主能简单举个实际应用的例子来说明认识您所谓的有用的默认构造函数的重要性吗?
wistaria2002:我的毕业论文就是手机QR码,楼主研究心得值得学习,现在的手机QR码好像quickmark做的不错,现在nokia n95手机已经自带了Qr码解码程序
文章分类
收藏
    相册
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 为Symbian程序中的图片增加半透明效果收藏

    新一篇: C++必知的几个知识点 | 旧一篇: Symbian中ini文件的使用

    我封装了一个方法,传入相应的图片,就会把图片变成半透明效果并显示在程序界面上.

    void CMegajoyContainer::ConvertToAlpha(CWindowGc& gc,CFbsBitmap *imgToBrighten) const
     {
      CFbsBitmap* iEmptyBitmap = new ( ELeave ) CFbsBitmap();
      CleanupStack::PushL( iEmptyBitmap );

      User::LeaveIfError( iEmptyBitmap->Create( imgToBrighten->SizeInPixels(), CEikonEnv::Static()->DefaultDisplayMode() ) );

      CFbsBitmapDevice *iGD = CFbsBitmapDevice::NewL( iEmptyBitmap );
      CleanupStack::PushL( iGD );
      CFbsBitGc *iGC;
      User::LeaveIfError( iGD->CreateContext( iGC ) );

      iGC->SetPenStyle( CGraphicsContext::ENullPen );
      iGC->SetBrushColor( KRgbWhite );
      iGC->SetBrushStyle( CGraphicsContext::ESolidBrush );
      iGC->DrawRect( TRect(TPoint(0,0), iEmptyBitmap->SizeInPixels()) );
      iGC->SetBrushStyle( CGraphicsContext::ENullBrush );

      delete iGC;
      CleanupStack::PopAndDestroy( iGD );

      CFbsBitmap* iEmptyBitmapMask = new ( ELeave ) CFbsBitmap();
      CleanupStack::PushL( iEmptyBitmapMask );

      User::LeaveIfError( iEmptyBitmapMask->Create( imgToBrighten->SizeInPixels(), EGray256 ) );

      iGD = CFbsBitmapDevice::NewL( iEmptyBitmapMask );
      CleanupStack::PushL( iGD );
      User::LeaveIfError( iGD->CreateContext( iGC ) );

      iGC->SetPenStyle( CGraphicsContext::ENullPen );
      iGC->SetBrushColor( KRgbGray );
      iGC->SetBrushStyle( CGraphicsContext::ESolidBrush );
      iGC->DrawRect( TRect(TPoint(0,0), iEmptyBitmap->SizeInPixels()) );
      iGC->SetBrushStyle( CGraphicsContext::ENullBrush );

      delete iGC;
      CleanupStack::PopAndDestroy( iGD );

      gc.BitBltMasked(TPoint(0,0),iEmptyBitmap,TRect(TPoint(0,0),iEmptyBitmapMask->SizeInPixels()),iEmptyBitmapMask,EFalse);

      CleanupStack::PopAndDestroy(iEmptyBitmapMask);
      CleanupStack::PopAndDestroy( iEmptyBitmap );

     } 

    注意要在.mmp文件中加入库文件

    LIBRARY bitgdi.lib
    LIBRARY ws32.lib
    LIBRARY fbscli.lib

     

    效果如下:

    原图片为

    转变后的图片为

    发表于 @ 2006年12月28日 13:07:00|评论(loading...)|编辑

    新一篇: C++必知的几个知识点 | 旧一篇: Symbian中ini文件的使用

    评论

    #fastzhao 发表于2007-05-31 09:47:31  IP: 210.13.101.*
    你的这个方法只画出了一个矩形,并没有画图片啊??
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 孙东风