2

色を直接使用すると機能します。しかし、色の値を RGB とアルファで保存したい場合は機能しません。何も描きません。

UIColor *aaa = [UIColor grayColor];
float r,g,b,a;

[aaa getRed:&r green:&g blue:&b alpha:&a];
aaa = [UIColor colorWithRed:r green:g blue:b alpha:a];

CGColorRef col = aaa.CGColor;

RGB を保存するにはどうすればよいですか?

4

2 に答える 2

2

あなたの問題は、メソッドgrayColorと互換性のある色空間で定義されていないことだと思います。これを確認するには、値を色には不可能なものにgetRed:green:blue:alpha:初期化し、それらが呼び出しによって変更されないことに注意してください。これは、文書化された戻り動作と一致します。または、メソッドが機能するなど、明示的に色を含むものrgbaに置き換えます。grayColorcyanColorgetRed:green:blue:alpha:

デモ用のコードを次に示します。

float r = 5.0,g = 6.0,b = 7.0,a = 8.0, w = 3.0, a2 = 4.0;
UIColor *aaa = [UIColor grayColor];
[aaa getRed:&r green:&g blue:&b alpha:&a];
[aaa getWhite:&w alpha:&a2];

(OS X では色空間を変換する方法がありますが、iOS では同等のものは見当たりません。)

于 2012-12-10T14:27:37.990 に答える
-1

フロートを初期化する必要があります。そうしないと、参照&f、&g、&b、&aは何も参照しません。

UIColor *aaa = [UIColor grayColor];
float r = 0.0f, g = 0.0f, b = 0.0f, a = 0.0f;

[aaa getRed:&r green:&g blue:&b alpha:&a];
aaa = [UIColor colorWithRed:r green:g blue:b alpha:a];

CGColorRef col = aaa.CGColor;
于 2012-12-10T14:21:19.780 に答える