UIColor
rgb bileşenlerini, CGBitmapContext
pikselleri el ile oluşturmak için ayıklamak istiyorum. Aşağıdaki örnek kod, UIColor
sabitlerinin çoğunda iyi çalışır, ancak hepsi değil, karışıktır. Şöyle ki: beklendiği gibi [UIColor yellowColor]
içinBazı UIColors'un renk bileşenleri olan anormal sonuçlar
CGColorRef color = [[UIColor yellowColor] CGColor];
const float* rgba = CGColorGetComponents(color);
float r = rgba[0];
float g = rgba[1];
float b = rgba[2];
float a = rgba[3];
NSLog(@"r=%f g=%f b=%f a=%f", r, g, b, a);
sonuçlar yukarıda
r = 1,000000 g = 1,000000 b = 0.000000 bir = 1,000000, bulunmaktadır.
[UIColor redColor]
r = 1,000000 g = 0.000000 B = 0.000000 bir = 1,000000, tekrar beklendiği gibi verir. Benzer şekilde blueColor
ve greenColor
için.
Ancak, [UIColor blackColor]
ve [UIColor whiteColor]
için sonuçlar tamamen anormal görünüyor ve ben (aslında ben ise) ben yanlış yapıyorum bilmiyorum. Şöyle ki
, [UIColor blackColor]
verir r = 0.000000 g = 1,000000 b = 0.000000 bir = 0.000000, yeşil bir Şeffaf olan ,
ve [UIColor whiteColor]
r = 1,000000 g = 1,000000 b = 0.000000 bir = 0.000000 verir , Şeffaf bir sarı olan .
(1) ne yapıyorum açıklamak yanlış
(2) benim anormal sonuçları kopya ve bana deme bana, ya
(3):
Ben eğer birileri olabilir ya çok memnun olurum Bana büyük bir çekiçle başımdan çarptı, bu yüzden çok fazla acı vermeyi bıraktı.
Howard
Parlak! Teşekkür ederim. Daha önce CGColorGetComponents (color) 'ı çağırmadan önce' CGColorGetNumberOfComponents (color) 'ile ilgili sık başvuruyla karıştırdım. Şimdi nedenini görüyorum. Bu arada, yukarıdaki modelin * adını * basmanın bir yolu yok, sadece değeri değil mi? – hkatz
Hata ayıklayıcı size adını gösterecektir, yazdırabildiğinizden emin değilim, çünkü bir sayının const tanımıdır. – pgb