Bitmap::LockBits 方法 (gdiplusheaders.h)

Bitmap::LockBits 方法锁定此位图的矩形部分,并提供可用于以指定格式读取或写入像素数据的临时缓冲区。 调用 Bitmap::UnlockBits 时,写入缓冲区的任何像素数据将复制到 Bitmap 对象。

语法

Status LockBits(
  [in]      const Rect  *rect,
  [in]      UINT        flags,
  [in]      PixelFormat format,
  [in, out] BitmapData  *lockedBitmapData
);

parameters

[in] rect

类型: const Rect*

指向矩形的指针,该矩形指定要锁定的位图部分。

[in] flags

类型: UINT

一组标志,指定位图的锁定部分是否可用于读取或写入,以及调用方是否已分配缓冲区。 各个标志在 ImageLockMode 枚举中定义。

[in] format

类型: PixelFormat

指定临时缓冲区中像素数据格式的整数。 临时缓冲区的像素格式不必与此 Bitmap 对象的像素格式相同。 表示各种像素格式的 PixelFormat 数据类型和常量在 Gdipluspixelformats.h 中定义。 有关像素格式常量的详细信息,请参阅 图像像素格式常量。 GDI+ 版本 1.0 不支持处理每通道 16 位图像,因此不应将此参数设置为等于 PixelFormat48bppRGB、PixelFormat64bppARGB 或 PixelFormat64bppPARGB。

[in, out] lockedBitmapData

类型: BitmapData*

指向 BitmapData 对象的指针。 如果已清除 flags 参数的 ImageLockModeUserInputBuf 标志,则 lockedBitmapData 仅用作输出参数。 在这种情况下,BitmapData 对象的 Scan0 数据成员会收到指向临时缓冲区的指针,该缓冲区用请求的像素值填充。 BitmapData 对象的其他数据成员接收临时缓冲区中像素数据的宽度、高度、格式和步幅) (属性。 如果像素数据自下而上存储,则 Stride 数据成员为负数。 如果像素数据是自上而下存储的,则 Stride 数据成员为正数。 如果设置了 flags 参数的 ImageLockModeUserInputBuf 标志,则 lockedBitmapData 用作输入参数 (,并可能用作) 的输出参数。 在这种情况下,调用方必须为要读取或写入的像素数据分配缓冲区。 调用方还必须创建 BitmapData 对象,将该 BitmapData 对象的 Scan0 数据成员设置为缓冲区的地址,并设置 BitmapData 对象的其他数据成员以指定缓冲区 (宽度、高度、格式和步幅) 的属性。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

要求

   
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusheaders.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

Bitmap

Bitmap::UnlockBits

BitmapData

图像

图像像素格式常量

ImageLockMode

图像、位图和图元文件

使用图像、位图和图元文件