UIColor が暗いか明るいか確認しますか? 質問する

UIColor が暗いか明るいか確認しますか? 質問する

選択された UIColor (ユーザーが選択) が暗いか明るいかを判断して、その色の上にあるテキスト行の色を変更し、読みやすさを向上させる必要があります。

以下は Flash/Actionscript の例です (デモ付き)。http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173

何かご意見は?

乾杯、アンドレ

アップデート

皆様のご提案のおかげで、動作するコードができました:

- (void) updateColor:(UIColor *) newColor
{
    const CGFloat *componentColors = CGColorGetComponents(newColor.CGColor);

    CGFloat colorBrightness = ((componentColors[0] * 299) + (componentColors[1] * 587) + (componentColors[2] * 114)) / 1000;
    if (colorBrightness < 0.5)
    {
        NSLog(@"my color is dark");
    }
    else
    {
        NSLog(@"my color is light");
    }
}

もう一度ありがとう :)

ベストアンサー1

W3C には次のものがあります:http://www.w3.org/WAI/ER/WD-AERT/#カラーコントラスト

黒または白のテキストのみを使用する場合は、上記の色の明るさの計算を使用します。125 未満の場合は、白いテキストを使用します。125 以上の場合は、黒のテキストを使用します。

編集 1: 黒いテキストに偏りがあります。:)

編集 2: 使用する数式は ((赤の値 * 299) + (緑の値 * 587) + (青の値 * 114)) / 1000 です。

おすすめ記事