# include“l_bitmap.h”
L_LTKRN_APIL_INTL_SetBitmapDataPointer(pBitmap, pData, dwSize)
将指定位图的数据指针设置为指定的数据指针pData
.
指向位图句柄的指针,该句柄引用要设置数据指针的位图。
用于设置指定位图数据指针的数据指针。
由pData指向的数据缓冲区的大小。
价值 | 意义 |
---|---|
成功 | 活动很成功。 |
< 1 | 发生错误。指返回代码. |
此函数可用于更改创建的位图的数据指针L_CreateBitmap,或按L_AllocateBitmap,内存类型为TYPE_USER。位图的指向数据指针被设置为传入的数据指针pData
.
您负责管理映像数据。L_FreeBitmap将不释放pData。
当使用位图时,pData指向的内存缓冲区必须是有效的。如果释放了位图引用的内存缓冲区,则在尝试使用该位图时将遇到访问违规。
如果为pData传递NULL,则位图没有位图数据。您不应该尝试使用没有数据指针的位图。
请注意:计算单行图像数据的正确大小:
Windows:(((Width * BitsPerPixel) + 31) >> 3)) &~3
Linux: ((Width * BitsPerPixel) + 7) / 8)
必需的dll和库
Win32, x64, Linux。
请注意,您需要释放分配给位图的内存
和位图数据使用如下:
L_INT SetBitmapDataPointerExample(pBITMAPHANDLE)
{
//分配一个足够大的缓冲区,以容纳两个镜像副本
L_UCHAR* pBuffer = (L_UCHAR*)GlobalAllocPtr(GMEM_MOVEABLE, pBitmap->Size * 2);
L_INT我;
L_INT nRet;
//锁定位图
L_AccessBitmap (pBitmap);
//循环,并获得翻转和正常版本的图像到pBuffer
为(i = 0;i < pBitmap->Height;我+ +)
{
nRet =(L_INT) L_GetBitmapRow(pBitmap,)
pBuffer + i * pBitmap->BytesPerLine,
pBitmap->ViewPerspective == TOP_LEFT ?pBitmap->Height - i - 1: i,
pBitmap - > BytesPerLine);
如果(nRet < 1)
返回nRet;
memcpy(pBuffer + pBitmap->Size + (pBitmap->Height - i - 1) * pBitmap->BytesPerLine,
pBuffer + i * pBitmap->BytesPerLine,
pBitmap - > BytesPerLine);
}
//解锁位图
L_ReleaseBitmap (pBitmap);
//释放原始映像。注意,这里假设图像是24位的
//简单起见,这样就不需要将调色板条目数组传递给L_CreateBitmap
//对于彩色图像,你必须获取调色板条目并传递它们而不是NULL
L_FreeBitmap (pBitmap);
//将图像设置为翻转版本
如果((nRet = L_CreateBitmap(pBitmap,运算符(BITMAPHANDLE),
TYPE_USER,
pBitmap->宽度,pBitmap->高度,pBitmap->BitsPerPixel,
pBitmap - >订单,空,
TOP_LEFT,
pBuffer, pBitmap->Size)) == SUCCESS)
{
消息框(NULL, TEXT(“图像被翻转了”),文本(""), MB_OK);
//将图像设置为非翻转版本
返回L_SetBitmapDataPointer(pBitmap, pBuffer + pBitmap->Size, pBitmap->Size);
}
返回nRet;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。