iPhone: как определить средний свет / темноту области UIImage - PullRequest
2 голосов
/ 24 февраля 2010

Мне нужно разместить надписи с прозрачным фоном над UIImage с переменным содержимым. Читаемость будет значительно различаться в зависимости от соотношения между цветом текста надписи и цветом / яркостью области изображения, отображаемой под надписью. Поскольку изображение будет постоянно меняться, цвет текста метки должен меняться синхронно.

Я нашел несколько методик для определения цвета , воспринимаемой яркости и т. Д. Одного пикселя. Однако мне нужно довольно быстро (при загрузке вида) определить приблизительный воспринимаемый цвет / яркость области UIImage под рамкой UILabel. Я предполагаю, что мне также понадобится измерить альфа, потому что один и тот же цвет / яркость при разных значениях альфа выглядят по-разному.

Есть ли способ рассчитать такое значение для области? Буду ли я просто суммировать пиксели? Если дело доходит до этого, есть ли алгоритм для этого?

Я подумал о двух возможных подходах:

  1. Выполните некоторые операции «складывания», то есть объедините пиксели от одной половины области до другой половины. Затем повторите, пока я не получу единственное значение. Будет ли это практичным? Как бы вы логически комбинировали пиксели, чтобы усреднить их воспринимаемый цвет / яркость?
  2. Образец статистически значимого числа пикселей в области, а затем объединить их (как-то), чтобы получить грубую меру.

Я думаю, что в наши дни эта проблема часто возникает из-за того, что люди очень часто настраивают фоны. Похоже, что-то, что стоило бы моего времени, чтобы выделить категорию или класс, чтобы справиться с этим, а затем поделиться им.

1 Ответ

1 голос
/ 24 февраля 2010

А как насчет простого выделения текста таким образом, чтобы он отображался на темном и светлом фоне?

Так происходит в других ситуациях, когда текст должен отображаться на фоне с неизвестным содержимым (например, фильмы с субтитрами).

...