0

我只想知道如何将特定像素的颜色设置为红色?假设 x =37 y=54 并且我想将此像素的颜色更改为红色。我不知道该怎么做。我已经使用行进平方算法将特定对象周围的点值转换为像素数组。

4

3 回答 3

0

您的问题很模糊,但这是一个一般性的答案:

像素颜色通常用 3 或 4 个字节表示:

红 - 绿 - 蓝 - (阿尔法)

您正在使用的 SDK 中应该有一个函数可以让您为像素设置这些值。如果您想要纯红色,您可以将红色设置为 255,将其他设置为 0。

于 2012-03-01T07:00:44.943 回答
0

您无法更改现有CGImage. 您必须创建一个新CGImage的像素更改。这些是步骤:

  1. CGBitmapContextCGBitmapContextCreate. _
  2. 使用CGImageCGContextDrawImage. _ _
  3. CGContextSetFillColorWithColor使用和绘制像素CGContextFillRect
  4. CGImage使用CGBitmapContextCreateImage. _

您可以在使用 检索指向位图数据的指针后直接调整位图数据,而不是使用CGContextSetFillColorWithColorand 。如果你要做很多,那会更快。CGContextFillRectCGBitmapContextGetData

此外,如果您打算做很多事情,您将希望创建位图上下文并将原始图像绘制到其中一次,并保留位图上下文以进行欺骗。但是CGImage从位图上下文创建新的可能是一个瓶颈。

于 2012-03-01T07:20:17.773 回答
0

如果您正在使用 CCSprite,只需使用colorsprite 的属性更改颜色:

mySprite.color=ccc3(123,234,12); //use whatever color values for red, green, blue you want

红色、绿色、蓝色的最大值为ccc3255;当最大化时,颜色是精灵的自然颜色;你不能变得更亮,但是如果所有这些值都改变了相同的数量,那么更改这些值将移动到其他颜色或使图像变暗。

对于纯红色,使用ccc3(255,0,0)

于 2012-03-01T17:15:14.517 回答