前几天一直在折腾图片的东西,一直觉得BREW对PNG的支持不是太好,除了显示没有其它什么可操作的了。
其实用IDisplay接口的SetDestination方法是可以方便地实现两种图片的转换,除了速度有点慢而已。
代码并不复杂,如下:
1
IBitmap*getBitmapHalf(DisplayWeb*pMe,IImage*pImage)
2![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
3
IBitmap*pScreen,*pBitmap,*pBitmap2;
4
ITransform*pTransform;
5
AEEImageInfoinfo;
6![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
IIMAGE_GetInfo(pImage,&info);
8![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
pScreen=IDISPLAY_GetDestination(pMe->pApp->a.m_pIDisplay);
10
if(pScreen)
11![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
12
IBITMAP_CreateCompatibleBitmap(pScreen,&pBitmap,info.cx,info.cy);
13
IBITMAP_CreateCompatibleBitmap(pScreen,&pBitmap2,info.cx,info.cy);
14
if(pBitmap&&pBitmap2)
15![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
16
IDISPLAY_SetDestination(pMe->pApp->a.m_pIDisplay,pBitmap);
17
IIMAGE_Draw(pImage,0,0);
18![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
IBITMAP_QueryInterface(pBitmap2,AEECLSID_TRANSFORM,(void*)(ITransform**)&pTransform);
20
if(pTransform)
21![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
{
22
ITRANSFORM_TransformBltSimple(pTransform,0,0,pBitmap,0,0,info.cx,info.cy,TRANSFORM_SCALE_HALF,COMPOSITE_KEYCOLOR);
23
ITRANSFORM_Release(pTransform);
24
}
25
else
26
IBITMAP_BltIn(pBitmap2,0,0,info.cx/2,info.cy/2,pBitmap,0,0,AEE_RO_COPY);
27![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
IDISPLAY_SetDestination(pMe->pApp->a.m_pIDisplay,NULL);
29![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
IBITMAP_Release(pBitmap);
31![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
}
33
IBITMAP_Release(pScreen);
34
}
35
returnpBitmap2;
36
}
很好理解,就是从屏幕创建两个兼容的Bitmap,然后其中一个作为绘图的目标,将png绘上去,另一个作为转换变形的目标,将前一个(绘有png图的)bitmap用ITransform接口进行变换,返回第二个bitmap即可。
分享到:
相关推荐
在这个场景下,我们面临的是一个特定的需求:在BREW平台上将PNG(Portable Network Graphics)格式的图像转换为BMP(Bitmap)格式。PNG是一种无损压缩的图像格式,而BMP则是Windows操作系统广泛支持的位图格式。 ...
在这个场景中,"BREW保存当前屏幕到bmp"是指使用BREW API来捕获设备的当前屏幕内容,并将其保存为一个位图(Bitmap,简称bmp)文件。 位图文件格式(BMP)是一种常见的图像文件格式,它存储的是像素数据,支持真...
在实际案例部分,书中将通过一系列示例来展示如何解决常见的brew使用问题,如处理依赖冲突、更新过时的软件包、以及优化系统资源的使用。这些实战经验将帮助读者更好地应对实际工作中遇到的各种挑战。 总而言之,...
【BREW教程(深入BREW开发)】 BREW,全称Binary Runtime Environment for Wireless,是一种专为移动设备设计的操作系统和应用程序开发平台。这份教程深入解析了BREW的实现原理和相关机制,旨在帮助开发者更深入地...
本文主要讲解了使用BREW工具将应用灌入手机的操作方法,旨在协助用户在营业厅完成手机升级工作。下面将对标题、描述、标签和部分内容进行详细的解释和分析。 标题:应用灌入手机方法-使用BREW工具 本标题主要介绍...
1. **了解BREW MP™**:掌握BREW MP的基本概念及其在移动应用开发领域的地位。 2. **理解BREW MP的高级架构**:深入探讨BREW MP的体系结构,包括其组成部分、工作原理以及各组件之间的交互方式。 3. **提供BREW MP的...
总的来说,"sdk.rar_SDK_brew_brew sdk_brew S_brew sdk"是一个包含BREW平台开发所需资源的压缩包,适合那些希望在无线设备上开发BREW应用的程序员。它提供了所有必要的工具和信息,让开发者能够从头开始构建、测试...
- **API接口**:BREW提供了多种类型的API接口,包括但不限于图形界面、网络通信、设备信息获取等,这些API按照功能进行了分类,并且采用了面向对象的设计理念,如类、方法和继承等,尽管底层实现是基于C语言。...
总之,《深入 BREW 开发》是一本全面而深入的指南,它不仅涵盖了BREW开发的基础知识,还提供了许多实践技巧和案例,旨在帮助开发者提升在无线设备上的编程能力,无论是为了职业发展还是个人兴趣,这本书都是一个宝贵...
在开发Brew Mobile Platform (BMP) 应用时,调试是必不可少的步骤,而断点调试是其中的关键环节。然而,在使用Visual Studio (VS) 进行BMP应用的模拟器调试时,可能会遇到一个常见问题:设置的断点无法正常工作,...
《深度剖析BREW实现原理》一书是针对BREW(Binary Runtime Environment for Wireless)平台的一份详尽解析,旨在帮助开发者深入理解BREW的代码结构、编程基础以及底层工作原理。BREW是由高通公司(Qualcomm)开发的...
《brew3.0 API + 深入brew开发》这套资料是针对计算机软件开发者和系统管理员的宝贵资源,尤其对于那些在Unix-like操作系统(如macOS)上进行软件管理和自动化安装的用户。Brew,全称Homebrew,是这类系统中最流行的...
这表明BREW不仅在技术上具有创新性,而且在商业上也取得了成功,成为无线应用市场的重要参与者。 #### 结论 BREW平台及其业务模式为无线应用的开发和分发提供了一个完整的生态系统。从技术架构到业务流程,BREW均...
Brew(全称为Berkeley Packet Filter)是一种轻量级的软件开发工具包(SDK),主要用于在嵌入式设备上创建和管理应用程序。BrewSDK(Brew Software Development Kit)是这个平台的核心组成部分,它提供了开发、编译...
在软件开发的世界里,BREW(Binary Runtime Environment for Wireless)提供了一个不同于传统Windows平台的开发环境,它主要面向移动设备的操作系统。对于那些习惯于在Windows环境下使用图形编程工具的开发者而言,...
4. BMC_Convertor.exe:这个文件可能是数据或文件转换工具,用于将不同格式的数据或应用程序适配到Brew平台,以确保它们能在目标设备上正常运行。 5. lng、images、docs、scripts:这些文件夹分别包含了语言文件、...
# 使用方法: # 1. 直接指定rb文件安装: brew install icu4c@73.rb # 2. 将icu4c@73.rb文件放到brew的默认Formula路径 然后执行 brew install icu4c@73 # 路径:/usr/local/Homebrew/Library/Taps/homebrew/homebrew...
结合以上信息,我们可以了解到这款“Adm”游戏是在BREW平台上开发的,使用了C++ Builder作为主要的开发工具,游戏内容包含了一些图像资源,如"caodi1.png",并且可能与其他开发者或资源分享网站有某种关联,例如通过...
BREW MP则提供了多媒体功能,支持丰富的图形和音频处理,使得在无线设备上实现复杂应用成为可能。最后,BREW Distribution System是一个分发网络,允许开发者将他们的应用提交到商店,供用户下载。 在学习BREW的...