Kolor tekstu na podstawie obrazu tła

Mój widok ma obraz tła z nakładką na etykietę tekstową Jaki jest najlepszy/dobry dynamiczny sposób określania koloru tekstu na podstawie obrazu tła, aby mógł być czytelny (na razie interesuje mnie tylko ustalenie, czy kolor tekstu powinien być ciemny czy jasny)

Dzięki:)

Author: Ed Liss, 2013-10-18

2 answers

Znajdź średni kolor z podanym linkiem

Następnie stylizuj tekst

CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0;
[averageColor getRed:&red green:&green blue:&blue alpha:&alpha];

int threshold = 105;
int bgDelta = ((red * 0.299) + (green * 0.587) + (blue * 0.114));

UIColor *textColor = (255 - bgDelta < threshold) ? [UIColor blackColor] : [UIColor whiteColor];
CoÅ› w tym stylu.

Możesz również użyć powyższego linku, aby uzyskać UIColor z obrazu i użyć kategorii Matta, aby UIColor stał się jasny lub ciemny.

 14
Author: Bot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 14:42:16

Moim pierwszym jest znalezienie średniego koloru obrazu i ustawienie koloru tekstu na podstawie tego. Oczywiście obrazy mogą zawierać jasne i ciemne obszary, więc wybrany kolor może być czasami nieczytelny.

Aby znaleźć średni kolor obrazu, spróbuj tego:

Http://www.bobbygeorgescu.com/2011/08/finding-average-color-of-uiimage/

Gdy masz średni kolor, sprawdź wartości czerwony, zielony i niebieski. Jeśli są "wystarczająco wysokie" (cokolwiek zdefiniujesz, że as), użyj ciemnego tekstu, w przeciwnym razie użyj jasnego tekstu.

 7
Author: woz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-18 18:10:50