Bitmap::GetPixel 方法 (gdiplusheaders.h)

Bitmap::GetPixel 方法获取此位图中指定像素的颜色。

语法

Status GetPixel(
  [in]  INT   x,
  [in]  INT   y,
  [out] Color *color
);

参数

[in] x

类型: INT

指定像素的 x 坐标 (列) 的整数。

[in] y

类型: INT

指定像素的 y 坐标 (行) 的整数。

[out] color

类型: 颜色*

指向接收指定像素颜色的 Color 对象的指针。

返回值

类型: 状态

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

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

注解

根据位图的格式, Bitmap::GetPixel 可能不会返回与 Bitmap::SetPixel 设置的值相同。 例如,如果在像素格式为 32bppPARGB 的 Bitmap 对象上调用 Bitmap::SetPixel,则像素的 RGB 分量将被预乘。 由于舍入,随后调用 Bitmap::GetPixel 可能会返回不同的值。 此外,如果对颜色深度为每像素 16 位的 Bitmap 对象调用 Bitmap::SetPixel,则信息可能会在从 32 位转换为 16 位期间丢失,后续调用 Bitmap::GetPixel 可能会返回不同的值。

示例

以下示例基于 JPEG 文件创建 Bitmap 对象。 代码调用 Bitmap::GetPixel 方法以获取位图中像素的颜色,然后使用检索到的颜色填充矩形。

VOID Example_GetPixel(HDC hdc)

{

   Graphics graphics(hdc);

   // Create a Bitmap object from a JPEG file.
   Bitmap myBitmap(L"Climber.jpg");

   // Get the value of a pixel from myBitmap.
   Color pixelColor;
   myBitmap.GetPixel(25, 25, &pixelColor);

   // Fill a rectangle with the pixel color.
   SolidBrush brush(pixelColor);
   graphics.FillRectangle(&brush, Rect(0, 0, 100, 100));
}

要求

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

另请参阅

Bitmap

Bitmap::LockBits

Bitmap::SetPixel

颜色

图像

图像、位图和图元文件

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