2012-03-06 79 views
0

我正在玩ANSI转义序列,我正在用颜色度过一段艰难的时光。iPhone中的8位颜色

我已经尝试了几个来自维基百科的ANSI entry的调色板,它总是发生相同的情况。我创建了一个颜色与

[UIColor colorWithRed: green: blue: alpha]; 

而结果无关与假设颜色(我256将每个人),其中大部分结束了一样。我相信UIColor是不够的,我应该使用CGColorRef来进行翻译。有小费吗?

this is the result

顶部的颜色是“常规的人”,而低级的应该是光明的八,但一切都搞砸了。

这是我创建的颜色:

+ (UIColor *) cyanANSIColor 
{ 
    return [UIColor colorWithRed:51.0f/256.0f 
          green:187.0f/256.0f 
          blue:200.0f/256.0f 
          alpha:1.00f]; 
} 

+ (UIColor *) brightCyanANSIColor 
{ 
    return [UIColor colorWithRed:85.0f/256.0f 
          green:255.0f/256.0f 
          blue:255.0f/256.0f 
          alpha:1.00f]; 
} 

而且我把它们分配给每个阅览通过它

backgroundColor 

财产。你可以看到青色的颜色是错误的(其中之一),而且大多数看起来都是一样的。深灰色显示蓝色。没有一个是整数。

+2

UIColor和CGColorRef的颜色值是从0到1,而不是0到255.你试过把255分开吗? – kennytm 2012-03-06 17:06:47

+3

该方法将起作用,其他方面也是错误的。发布一些代码?截图? – QED 2012-03-06 17:07:37

+2

你在写'127.0/255'还是'127/255'?后者将始终为0。 – kennytm 2012-03-06 17:12:38

回答

2

这是我所得到的,当我手动设置的问题规定的两种观点的值的颜色:

enter image description here

我的“正常”青色(51187200)是在顶部和光明(85,255,255)位于底部。但根据颜色看起来我的顶级颜色与底色相匹配的方式。是否有可能您没有在正确的位置绘制色板,并因此看到了青色视图的背景?而其他样片同样被误解了?

2

您需要通过255来划分,而不是256:

+ (UIColor *) cyanANSIColor 
{ 
    return [UIColor colorWithRed:51.0f/255.0f 
          green:187.0f/255.0f 
          blue:200.0f/255.0f 
          alpha:1]; 
} 
+0

感谢您指出,但这并没有什么区别。我仍然有这个问题。 – ferostar 2012-03-06 17:25:03

+1

虽然正确,但这不会对结果产生大的差异。 51/255与51/256没有太大区别 – jrturton 2012-03-06 17:26:38

0

而不是使用一个视图的背景颜色的你试过的石英或OpenGL渲染每个颜色的CGBitmapImageRep或一个OpenGL的子矩形ES视图?如果您没有对您使用的视图进行子类化,则不会告知可能会影响每个视图颜色的其他绘图。