当前位置: 首页 > news >正文

为Symbian程序中的图片增加半透明效果

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

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

效果如下:

原图片为

转变后的图片为

相关文章:

  • 模型预测控制的缺点_如何在Simulink中实现基于模型预测控制的传感器融合自适应巡航控制?(视频+中文字幕)...
  • 基于.NET平台的MapX开发
  • c++ 获取当前时间_Python 日期和时间
  • idea tomcat热部署_IDEA--在IDEA中实现热部署SpringBoot项目
  • 基于MapXtreme的WebGPS系统的设计与实现
  • 用python编写一个点餐程序_Python写一个自动点餐程序
  • 中国电子商务的历史 --- 中国电子商务的洋务运动
  • 内存分配算法java_java中的内存分配
  • 链接规范必须在全局范围内_Git commit message 规范
  • Wapm 试验安装
  • python end用法_python end用法是什么?
  • ArcIMS问题集中解决精华
  • 新加坡旅游 相关资料
  • python画图程序没有图_解决python中使用plot画图,图不显示的问题
  • 新加坡生活记-3-
  • 《深入 React 技术栈》
  • ES6 学习笔记(一)let,const和解构赋值
  • happypack两次报错的问题
  • Java到底能干嘛?
  • JS实现简单的MVC模式开发小游戏
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • rabbitmq延迟消息示例
  • React-生命周期杂记
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 离散点最小(凸)包围边界查找
  • 面试遇到的一些题
  • 盘点那些不知名却常用的 Git 操作
  • 前端面试总结(at, md)
  • 区块链将重新定义世界
  • 三分钟教你同步 Visual Studio Code 设置
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 写代码的正确姿势
  • 硬币翻转问题,区间操作
  • 再次简单明了总结flex布局,一看就懂...
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • PostgreSQL之连接数修改
  • (9)目标检测_SSD的原理
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (超详细)语音信号处理之特征提取
  • (二)PySpark3:SparkSQL编程
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net的socket示例
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net生成的类,跨工程调用显示注释
  • .NET正则基础之——正则委托
  • /usr/bin/env: node: No such file or directory
  • [2669]2-2 Time类的定义
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [AIGC] Java 和 Kotlin 的区别
  • [AR]Vumark(下一代条形码)
  • [AutoSAR 存储] 汽车智能座舱的存储需求
  • [BZOJ1008][HNOI2008]越狱