Bitmap::SetPixel 方法 (gdiplusheaders.h)

Bitmap::SetPixel 方法设置此位图中指定像素的颜色。

语法

Status SetPixel(
  [in]      INT           x,
  [in]      INT           y,
  [in, ref] const Color & color
);

参数

[in] x

类型: INT

int ,指定像素的 x 坐标 (列) 。

[in] y

类型: INT

int ,指定像素的 y 坐标 (行) 。

[in, ref] color

类型: const Color

Color 对象的引用,该对象指定要设置的颜色。

返回值

类型: 状态

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

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

注解

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

示例

以下示例基于 JPEG 文件创建 Bitmap 对象。 代码在未更改后绘制位图。 然后,代码调用 Bitmap::SetPixel 方法,以在位图中创建黑色像素的检查模式,并绘制更改的位图。

VOID Example_SetPixel(HDC hdc)

{
   Graphics graphics(hdc);

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

   // Draw the bitmap.
   graphics.DrawImage(&myBitmap, 0, 0);

   // Create a checkered pattern with black pixels.
   for (UINT row = 0; row < myBitmap.GetWidth(); row += 2)
   {
      for (UINT col = 0; col < myBitmap.GetHeight(); col += 2)
      {
         myBitmap.SetPixel(row, col, Color(255, 0, 0, 0));
      }
   }

   // Draw the altered bitmap.
   graphics.DrawImage(&myBitmap, 200, 0);
}

要求

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

另请参阅

Bitmap

Bitmap::GetPixel

颜色

图像

图像、位图和图元文件

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