前几天一直在折腾图片的东西,一直觉得BREW对PNG的支持不是太好,除了显示没有其它什么可操作的了。
其实用IDisplay接口的SetDestination方法是可以方便地实现两种图片的转换,除了速度有点慢而已。
代码并不复杂,如下:
1IBitmap*getBitmapHalf(DisplayWeb*pMe,IImage*pImage)
2{
3IBitmap*pScreen,*pBitmap,*pBitmap2;
4ITransform*pTransform;
5AEEImageInfoinfo;
6
7IIMAGE_GetInfo(pImage,&info);
8
9pScreen=IDISPLAY_GetDestination(pMe->pApp->a.m_pIDisplay);
10if(pScreen)
11{
12IBITMAP_CreateCompatibleBitmap(pScreen,&pBitmap,info.cx,info.cy);
13IBITMAP_CreateCompatibleBitmap(pScreen,&pBitmap2,info.cx,info.cy);
14if(pBitmap&&pBitmap2)
15{
16IDISPLAY_SetDestination(pMe->pApp->a.m_pIDisplay,pBitmap);
17IIMAGE_Draw(pImage,0,0);
18
19IBITMAP_QueryInterface(pBitmap2,AEECLSID_TRANSFORM,(void*)(ITransform**)&pTransform);
20if(pTransform)
21{
22ITRANSFORM_TransformBltSimple(pTransform,0,0,pBitmap,0,0,info.cx,info.cy,TRANSFORM_SCALE_HALF,COMPOSITE_KEYCOLOR);
23ITRANSFORM_Release(pTransform);
24}
25else
26IBITMAP_BltIn(pBitmap2,0,0,info.cx/2,info.cy/2,pBitmap,0,0,AEE_RO_COPY);
27
28IDISPLAY_SetDestination(pMe->pApp->a.m_pIDisplay,NULL);
29
30IBITMAP_Release(pBitmap);
31
32}
33IBITMAP_Release(pScreen);
34}
35returnpBitmap2;
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的...
在开发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,是这类系统中最流行的...
4. BMC_Convertor.exe:这个文件可能是数据或文件转换工具,用于将不同格式的数据或应用程序适配到Brew平台,以确保它们能在目标设备上正常运行。 5. lng、images、docs、scripts:这些文件夹分别包含了语言文件、...
Brew(全称为Berkeley Packet Filter)是一种轻量级的软件开发工具包(SDK),主要用于在嵌入式设备上创建和管理应用程序。BrewSDK(Brew Software Development Kit)是这个平台的核心组成部分,它提供了开发、编译...
# 使用方法: # 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的...
第8章 BREW 3.1 SMS新接口使用方法 第9章 BREW 语音呼叫业务 第10章 BREW 3.1.5 SP01 触摸屏功能使用 第11章 IThread及IRscPool接口使用 第12章 BREW 面向对象特点及其应用 第13章 基于socket的网络编程 第14章 ...
Brew主要用于Mac OS X系统,用于管理命令行工具,但它并非直接支持在手机上安装应用。不过,通过一些特殊途径,我们仍然可以实现这个目的。本文将详细介绍如何使用Brew程序应用安装到手机。 首先,理解Brew的基本...
`Brew`,全称Homebrew,是一款在Mac OS X操作系统上广泛使用的包管理器,它使得用户可以方便地安装、管理和更新各种开源软件。在Linux系统中也有类似的概念,如`apt`或`yum`,但`brew`是专为苹果的Mac环境设计的。在...