L_CreateBitmapList

# include“l_bitmap.h”

L_LTKRN_APIL_INTL_CreateBitmapList (phList)

创建一个空列表的位图。列表可以建立和维护与相关功能。

参数

pHBITMAPLISTphList

地址的HBITMAPLIST变量的列表。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

必需的dll和库

平台

Win32 x64, Linux。

另请参阅

功能

主题

例子

这个示例创建一个位图列表从当前位图旋转每份10度。
它定义了旋转填充颜色为透明色,和分配一个动画背景颜色。
然后播放动画,使用当前位图作为目标。

L_INT CreateBitmapListExample (HWND HWND,HPALETTE hpalPaint,/ *漆面板处理。* /pBITMAPHANDLE pBitmap)/ *加载图像位图句柄。* /{L_INT nRet;HBITMAPLIST hList;/ * * /位图列表BITMAPHANDLE TmpBitmap;/ *临时位图来构建列表* /L_INT nMax = 160;/ *最大宽度或高度位图的列表* /HPLAYBACK HPLAYBACK;/ *动画播放* /L_UINT uState;/ * * /播放下一个状态矩形rcUpdate;/ *源剪辑矩形用于播放* /矩形rcDisplay;/ *显示矩形用于播放* /HDC HDC;/ * * /设备上下文的当前窗口HPALETTE HPALETTE =零;/ *当前系统调色板的临时副本* /RGBQUAD TmpPalette [1];/ *定义透明面板颜色* /L_INT我;/ * * /循环计数器/ *减少内存需求,如果必要的。只有小的位图玩顺利。* /如果宽度(pBitmap - > > nMax){nRet = L_SizeBitmap (pBitmap nMax (pBitmap - >高度* nMax) / pBitmap - >宽度,SIZE_RESAMPLE);如果(nRet ! =成功)返回nRet;}其他的如果(pBitmap - > > nMax)高度{nRet = L_SizeBitmap (pBitmap (pBitmap - >宽度* nMax) / pBitmap - >高度,nMax, SIZE_RESAMPLE);如果(nRet ! =成功)返回nRet;}/ *犹豫一个优化面板,留下最后一个颜色使用空白后来透明度* /nRet = L_ColorResBitmap (pBitmap pBitmap,运算符(BITMAPHANDLE) 8 CRF_FLOYDSTEINDITHERING | CRF_OPTIMIZEDPALETTE | CRF_IDENTITYPALETTE,空,空,255,零,零);如果(nRet ! =成功)返回nRet;/ *设置透明色板的位置* /TmpPalette [0]。rgbBlue =(202字节);TmpPalette [0]。rgbGreen =(222字节);TmpPalette [0]。rgbRed =(212字节);nRet = L_PutBitmapColors (pBitmap 50 TmpPalette);如果(nRet ! =成功)返回nRet;/ *创建调色板* /hdc = GetDC (hWnd);pBitmap hpalPaint = L_CreatePaintPalette (hdc);ReleaseDC (hWnd, hdc);/ *设置回放旗帜,将适用于所有列表中的位图* /pBitmap - >标记。WaitUserInput = FALSE;pBitmap - >标记。透明度= TRUE;pBitmap - >左= 0;pBitmap - >高级= 0;pBitmap延迟- > = 10;pBitmap - >透明度= PALETTEINDEX (255);去年颜色调色板* / / *pBitmap - > DisposalMethod = PLAYDISPOSE_RESTOREBACKGROUND;/ *创建和填充位图列表* /nRet = L_CreateBitmapList (&hList);如果(nRet ! =成功)返回nRet;(i = 0;我< = 36;+ + i){nRet = L_CopyBitmap (&TmpBitmap pBitmap,运算符(BITMAPHANDLE));如果(nRet ! =成功)返回nRet;/ *旋转,使用透明颜色填充颜色* /nRet = L_RotateBitmap (&TmpBitmap, 1000 * 0 PALETTEINDEX (255);如果(nRet ! =成功)返回nRet;nRet = L_InsertBitmapListItem (hList (L_UINT) 1, &TmpBitmap);如果(nRet ! =成功)返回nRet;}/ *设置背景颜色的动画播放* /pBitmap - >背景= RGB (0, 0255);/ * * /使用的客户区显示矩形GetClientRect (hWnd, &rcDisplay);/ *创建并运行播放* /nRet = L_CreatePlayback (&hPlayback pBitmap hList);如果(nRet ! =成功)返回nRet;{nRet = L_ProcessPlayback (hPlayback &uState);如果(nRet ! =成功)返回nRet;开关(uState){情况下PLAYSTATE_POSTRENDER:nRet = L_GetPlaybackUpdateRect (hPlayback &rcUpdate,真的);如果(nRet ! =成功)返回nRet;hdc = GetDC (hWnd);如果(hpalPaint){hPalette = SelectPalette (hdc hpalPaint,真的);RealizePalette (hdc);}nRet = L_PaintDC (hdc pBitmap, NULL, &rcUpdate、&rcDisplay &rcDisplay, SRCCOPY);如果(nRet ! =成功)返回nRet;如果(hpalPaint)SelectPalette (hdc hPalette,真实);ReleaseDC (hWnd, hdc);打破;}}(uState ! = PLAYSTATE_END);/ * * /清理干净nRet = L_DestroyPlayback (hPlayback, NULL);如果(nRet ! =成功)返回nRet;nRet = L_DestroyBitmapList (hList);如果(nRet ! =成功)返回nRet;返回成功;}

LEADTOOLS光栅成像C API的帮助
188金宝搏的网址客服|支持|联系我们|知识产权的通知
©1991 - 2021领先的技术公司。保留所有权利。