我正在为客户创建着色书应用程序,并且进展顺利。很好,实际上,因为完成了。但是,有一个障碍:某些颜色没有按预期显示。

客户给了我图像和用于创建画笔的密钥。我以颜色为参考,并为每种颜色制作了几种不同大小的圆圈,以表示不同的画笔大小。然后按如下方式加载画笔:

    brush = [[CCSprite spriteWithFile:@"yellowbrush3.png"] retain];
    [brush setBlendFunc: (ccBlendFunc) { GL_ONE, GL_ONE_MINUS_SRC_ALPHA }];
    [brush setOpacity:20];

该特定文件的画笔图像为:

我对输出的颜色进行了截图,以与用于创建画笔的键进行比较:

大约一半的颜色看起来很好,而其他颜色则很明显。

我尝试了不同级别的不透明度,更改了一些GL设置,但似乎无济于事。

最佳答案

这是由于存在混合伪像,并且您在白色背景上绘制。要确认这一点,请更改背景颜色,并查看每种颜色的色调略有变化。若要更正此问题,您可以减少所绘制颜色的不透明度,或者选择一种更合适的混合模式。

尝试将glBlendFunc更改为对两个参数都使用GL_ONE。这将消除混合,但是至少您的颜色应该是100%准确的。

关于objective-c - 应用中的颜色与其所基于的图像不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10018262/

10-17 00:52