2012-02-24 4 views
2

データベースには、1つのフィールドが関連する色のARGB値である行がいくつかあります。ARGB値からUIColorオブジェクトを作成します。

私はこれらのテーブルのすべての行を読んで、ARGB値の10進数をUIColorに変換しました。

私はこれを見つけてグーグルだが、私はしなかった。

これにアプローチする方法はありますか?

ありがとうございました。

+0

をそれを使用する必要があり、いくつかの色でそれをテストし、あなたが10進数の値を変換する必要がありますか?小数からRGBに変換する方法はあまりありません。 –

+0

バックオフィスが.NETで開発された分散システムを開発しています。これを行うには2つの方法があります(Color.FromARGB()とColor.ToARGB())。 Objective-CではARGB形式が標準であるため、似たようなものになると思っていました。( – NemeSys

+0

ARGBはサポートされていますが、提供している倍値形式ではありません。私はそれを行うことができると確信していますが、それを分解するためにいくつかの余分なコードが必要になります –

答えて

2
text.color = [UIColor colorWithRed:10.0/255.0 green:100.0/255.0 blue:55.0/255.0 alpha:1]; 

正しく設定するには、RGB値を255で割り算する必要があります。

+0

はい、私はこれを知っていますが、ARGBで区切られていない完全な小数値を取得しています。 Color.ToARGB()。この値はデータベースに格納され、AppはこのDBにアクセスし、ARGB値を1つの10進数値で取得します。 – NemeSys

13

ここでは、ARGB整数をUIカラーに変換する方法について説明します。我々は、.NETシステム

+(UIColor *)colorFromARGB:(int)argb { 
    int blue = argb & 0xff; 
    int green = argb >> 8 & 0xff; 
    int red = argb >> 16 & 0xff; 
    int alpha = argb >> 24 & 0xff; 

    return [UIColor colorWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:alpha/255.f]; 
} 
+0

これは正解です。 – daniherculano

1

でマクロを定義することができますし、あなたのコード全体

#define UIColorFromARGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ 
blue:((float)(rgbValue & 0xFF))/255.0 alpha:((float)((rgbValue & 0xFF000000) >> 24))/255.0] 
関連する問題