c++ - 结构像素颜色值

标签 c++ rgb pixel

我已经定义了一个结构

struct Pixel { uint8_t r, g, b; };

我有一个函数

void setPixel(int x, int y, const Pixel& color);

我必须为 setPixel() 函数输入什么颜色值才能使其正常工作?不知道该如何定义。

我在这里错过了什么?

最佳答案

查看为您要调用的函数提供的原型(prototype)。

void setPixel(int x, int y, const Pixel& color);

观察:

  • x 需要一个参数,一个 int
  • y 需要一个参数,一个 int
  • 它需要一个color参数,一个Pixel
    它恰好是一个引用参数,但这并不是直接相关的

所以首先,任何超过三个参数的调用都不能工作。

其次,你需要给出三个正确类型的参数,前两个是int类型,可以是右值。您的 xy 可能没问题,如果它们是 int,如

int x = 5;
int y = 5;

但是,这可能会有点困惑,因为在您要调用的函数内部和外部使用相同的名称。所以我推荐

int outsideX = 5;
int outsideY = 5;

第三个参数是一个引用参数,需要一个类型为Pixel 的实际(常量)变量。您需要设置一个。

Pixel outsideColor;
outsideColor.r = 255;
outsideColor.g = 0;
outsideColor.b = 255;
// this will be bright magenta

完成这些准备后,您可以将函数调用为

setPixel(outsideX, outsideY, outsideColor);

关于c++ - 结构像素颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646911/

相关文章:

c++ - 将私有(private)库静态链接到公共(public)库以隐藏符号

excel - Excel 中条件格式 'Styles' 的 RGB 代码是什么?

c++ - 将 RGB 444 转换为可显示的图像

javascript - 如何在不使用 image.src 或 image.onload 的情况下将 png base 64 转换为像素数组?

css - 我的形象到底怎么了?

c++ - 在 SELECT 中拆分一个 varbinary

带有巨大静态数组的 C++ 大头文件(4.5MB 或更多)

c++ - boost::filesystem::path 在 linux 机器上接受 wstring

c# - 将 ARBG 转换为具有白色背景的 alpha 混合的 RGB

javascript - getImageData() 只给我红色、绿色和蓝色值 0