勇芳软件工作室.汉化:  GDI+ Flat API > Bitmap Functions >

GdipBitmapLockBits

Previous pageReturn to chapter overviewNext page

描述

 

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

 

C++ 语法

 

GpStatus WINGDIPAPI GdipBitmapLockBits(

   GpBitmap* bitmap,

   GDIPCONST GpRect* rect,

   UINT flags,

   PixelFormat format,

   BitmapData* lockedBitmapData

);

 

PowerBASIC 语法

 

FUNCTION GdipBitmapLockBits ( _

   BYVAL pbitmap AS DWORD, _

   BYREF rc AS RECTL, _

   BYVAL flags AS LONG, _

   BYVAL PixelFormat AS LONG, _

   BYREF lockedBitmapData AS BitmapData _

) AS LONG

 

参数

 

bitmap

 

[in]指向位图对象的指针。

 

rc

 

[in]指向要锁定的位图部分的矩形指针。

 

flags

 

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

 

format

 

[in]长整数值,用于指定临时缓冲区中像素数据的格式。临时缓冲区的像素格式不必与此Bitmap对象的像素格式相同。 Microsoft?Windows?GDI +版本1.0不支持每通道16位图像的处理,因此您应该不要将此参数设置为PixelFormat48bppRGBPixelFormat64bppARGBPixelFormat64bppPARGB.

 

lockedBitmapData

 

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

 

返回值

 

如果函数成功,则返回Ok,它是状态枚举的一个元素。

 

如果函数失败,它返回状态枚举的其他元素之一。