我封装了一个方法,传入相应的图片,就会把图片变成半透明效果并显示在程序界面上.
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
效果如下:
原图片为
转变后的图片为
分享到:
相关推荐
在Symbian操作系统中,开发应用程序时,我们经常会遇到需要实现一些高级视觉效果,比如半透明效果。这个“symbian半透明例子”提供了一个原创的、易于理解的方法来实现这种效果,尤其对于图片的半透明处理有很好的...
在提供的代码段中,`CMegajoyContainer::ConvertToAlpha`是一个函数,它的目的是将传入的图片转换为半透明效果。这个函数接受一个CWindowGc对象和一个CFbsBitmap指针作为参数,CWindowGc是Symbian中的图形上下文,...
本篇文章将详细讲解如何在Symbian操作系统的程序中启动记事本和图片浏览程序。 Symbian操作系统,特别是60系列开发平台2.0,提供了API接口供开发者调用系统应用程序。为了在程序中启动记事本或图片浏览程序,我们...
在"自己写的一个把png图片转换成Symbian上bmp图片的程序"中,开发者可能使用了开源库如libpng来处理PNG解码,然后利用自定义逻辑将解码后的数据转换为BMP格式,并生成Mask。这个过程可能涉及到颜色空间的转换、像素...
总结,Symbian的UI程序框架为开发者提供了强大而灵活的工具,用于构建功能丰富的移动应用。理解并熟练运用这个框架是开发Symbian应用程序的关键,也是提升用户体验和应用程序质量的基础。通过对框架的深入学习和实践...
在压缩包“installLover”中,包含了与Symbian安装程序相关的源代码文件,这为开发者提供了研究和学习的素材。通过阅读和分析这些源代码,不仅可以提升对Symbian系统的理解,也能掌握安装程序的设计原理和实现技巧,...
在Symbian操作系统上开发应用程序时,为了提升用户体验和吸引用户注意力,经常需要实现各种动态效果,其中之一就是滚动广告效果。这种效果常见于各种应用的启动界面或菜单中,能够循环展示多张广告图片,增加视觉...
Symbian自动更新程序是为运行该系统的设备设计的一个关键组件,旨在帮助用户便捷地升级系统和应用程序,确保设备的安全性和性能。 【描述】:Symbian自动更新程序的主要功能是监测和安装可用的系统更新,以修复已知...
塞班论坛是一个专门为塞班(Symbian)操作系统用户提供交流平台的社区,其中涉及了大量的技术讨论和资源分享。本文将详细介绍“塞班证书签名程序”的相关知识点,以及如何使用DOSPY签名工具v2.2.9.0627.exe来给SIS或...
在这个实例中,我们将深入理解如何利用Qt Creator和Qt库来为Symbian设备编写应用程序。首先,你需要安装Qt SDK,它包含了Qt Creator、编译器、模拟器和所有必要的工具,以便于开发和测试Symbian应用。访问Qt官方网站...
【标题】:“简单的symbian程序” 在移动操作系统的历史中,Symbian...通过学习以上知识点,你可以从零开始构建一个简单的Symbian GUI程序,理解移动平台开发的基本流程,并为更复杂的Symbian应用开发打下坚实的基础。
Symbian操作系统以其独特的应用程序架构著称,这一体系结构为开发者提供了灵活且高效的应用开发环境。本文将深入探讨Symbian应用程序的基础架构,包括核心应用程序类、应用程序初始化过程以及重要的AppUi方法,同时...
在这个“symbian下的透明动画示例”项目中,我们聚焦于在Symbian V3和V5版本系统上加载并展示具有透明效果的GIF动画。 首先,我们需要理解Symbian系统对图形处理的支持。Symbian提供了Qt Mobility库,它包含了对...
《Symbian小程序开发入门与实践》 Symbian操作系统,作为早期智能手机平台的代表,曾经占据了市场的主导地位,尤其在功能机时代,其影响力不容小觑。Symbian平台上的小程序开发,对于当时的开发者来说,是探索移动...
《塞班S60 3rd 红外遥控程序:开启移动设备的家电控制新篇章》 在数字化生活的浪潮中,手机已经不再仅仅局限于通信工具,而是逐渐演变为多功能的智能设备。这其中,塞班S60 3rd平台的红外遥控程序便是将手机与家庭...
本合集为symbian S60入门必看经典。包括对基本的架构介绍。诸如列表框、菜单、文本编辑框等常用控件的使用介绍和代码分析。适合初学symbian s60的人阅读。建议在看多symbian os c++和Series 60应用程序开发之后再看...
### Symbian塞班操作系统深度解析 #### Symbian简介:智能移动终端的先驱者 Symbian操作系统,源自英国宝意昂公司(Psion)的EPOC操作系统,其设计理念强调“使用电子产品如同品尝乳酪般简单”。EPOC的命名灵感...
【标题】"symbian样例小程序"是一个针对Symbian操作...通过分析和实践这个小程序,开发者可以深入理解Symbian平台的事件处理、GUI编程以及资源管理等核心概念,为进一步开发更复杂的Symbian应用程序打下坚实的基础。