当前位置: BOLT界面引擎 > 知识库文章 > 关于XLGriphicPlus中的图片转换及处理的接口说明

关于XLGriphicPlus中的图片转换及处理的接口说明

作者:王松 2013-01-18

XLGraphic里面提供了引擎自定义的位图格式:XLBitmap。在实际开发过程中,经常会遇到需要将windows系统的HBITMAPHICON等转换为XLBitmap的需求。XLGraphicPlus(以下简称XGP)里面提供了一部分转换函数,建议开发者在遇到这种转换需求的时候,优先使用XGP中的转换函数。若需要自己转换,请参考XLGraphic位图注意事项》

 
XL_BITMAP_HANDLE XLGP_ConvertDIBToXLBitmap(HBITMAP hBitmap, unsigned long destColorType);
将一个设备无关位图(DIB)转换为XLBitmap,其中destColorType指定了目标位图的格式,目前支持XLGRAPHIC_CT_ARGB32XLGRAPHIC_CT_RGB24XLGRAPHIC_CT_GRAY
需要注意,如果DIB本身就是32位的,那么转换成XLBitmap后,alpha通道会保留原DIB的,如果原DIBalpha通道无意义,那么请使用XL_ResetAlphaChannel对结果进行alpha修正。
 
XL_BITMAP_HANDLE XLGP_ConvertDDBToXLBitmap(HDC hDC, HBITMAP hBitmap, unsigned long destColorType);
将一个设备相关位图(DDB)转换为XLBitmapdestColorType参数说明与XLGP_ConvertDIBToXLBitmap中相同。hDC指定了位图相关的dc
 
HBITMAP XLGP_ConvertXLBitmapToDIB(XL_BITMAP_HANDLE hBitmap, unsigned short destBitCount);
XLBitmap转换为一个设备无关位图。其中destBitCount指定了目标位图的像素位数,可以取值3224168
 
HBITMAP XLGP_ConvertXLBitmapToDDB(XL_BITMAP_HANDLE hBitmap, HDC hDC);
XLBitmap转换成设备相关位图,其中hDC指定了目标设备dc
 
HBITMAP XLGP_ConvertDDBToDIB(HDC hDC, HBITMAP hBitmap);
设备相关位图转设备无关位图,目标位图均是32bit; 如果源位图已经是DIB,那么返回NULL
 
在使用XGP之前,bolt只支持加载png格式的图片,XGP扩展了支持的图片格式。
XGP支持的图片格式:jpegbmpicogif,关于如何加载此类格式的图片,这里介绍三种方法:
1.       在加载XGP后使用XLGraphic中的XL_LoadBitmapFromFile接口加载此类格式的图片(这里会根据文件后缀名自动判断文件类型)。
2.       在加载XGP后,在资源xml中直接设置此类格式的资源,如<bitmap id="myBmp" path="bitmap\myBmp.jpg"/>
3.       使用XGP中的Load接口进行加载:
如:
XLGP_LoadJpegFromFile
XLGP_LoadBmpFromFile
XLGP_LoadIconFromFile
XLGP_LoadGifFromFile
等接口,具体请参考XLGraphicPlus.h文件。

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com