Total Members Voted: 16
0 Members and 1 Guest are viewing this topic.
Quote from: Kibermanick on February 10, 2018, 15:28:26Вопрос: как ты сделал заливку под цвет кавера?Просто растянул обложку до неприличия, примерно 200000px в ширину
Вопрос: как ты сделал заливку под цвет кавера?
В идеале - менять цвет обложки, как это сделано в Hameleon. Иначе не будет совместимости со старыми скинами.
Если только не добавить опцию в настройки плеера, то есть фактически интегрировать аналог плагина Hameleon.
Я это и имел ввиду.
Даже с одной точкой неплохой результат получается.
Довольно хитрой должна быть эта функция, даже интелектуальной.
Зачем сканировать все пиксели, достаточно взять несколько точек. Даже с одной точкой неплохой результат получается.
Это вообще несерьёзно, в одной точке может быть случайный цвет.
А в каком виде это отдавать скину?
Поскольку без скриптов здесь не обойтись, то, наверное, добавить функцию, возвращающую основной цвет кавера в формате TColor, может, ещё и цвет фона.
А в качестве нотификатора вполне подойдёт onTrackStarted.
// for the background we only take the left side of the image to ensure // a smooth transition
Или обложка альбома прилететь с интернета с запозданием.
В Android для вычисления цвета для фона уведомления берётся левая половина изображения, чтобы был плавный переход, так как обложка альбома отображается в правой части уведомления ...
Это частный случай, его принимать во внимание вообще не стОит, картинка может быть разделена и по вертикали на два преобладающих цвета (да и вообще, как угодно) - классический пример: небо и земля. Текст может располагаться в любой стороне от кавера, и сверху и снизу.
Другое дело, что выбрать фоном, а что цветом текста/других элементов? В скрипте это ещё можно проанализировать, скорректировать, в конце концов взять для того же текста контрастный цвет относительно преобладающего в кавере, а жёсткая ссылка на ресурс может привести в каком-то случае к почти нечитаемому тексту.
Речь не про то, что обложка альбома может быть по разному визуально разделена, а то что в дизайне скина может быть плавный переход в один сплошной цвет с любой стороны от обложки альбома.
В Android плавный переход слева и вычисляется цвет для фона на основе левой половины обложки альбома всегда, независимо от того, как визуально разделена обложка альбома.
Цвет для текста специально вычисляется таким образом, чтобы был читаемым и достаточно контрастным поверх цвета фона. То есть цвет текста зависит от цвета фона.
Резюме: не хорошо вычислять цвет по половинке картинки, в оставшейся может оказаться совсем другая палитра.
setRegion()This method indicates what area of the bitmap the builder uses when creating the palette. You can only use this method when generating the palette from a bitmap, and it does not affect the original image.
Тогда напрашивается свой нотификатор со своими внутренними переменными, как сделано для спектрума.
Тогда, в идеале, нужно сделать сразу хорошо и гибко и реализовать извлечение палитры цветов из задаваемого региона изображения
Code: [Select] private static Palette.Swatch findBackgroundSwatch(Palette palette) { // by default we use the dominant palette Palette.Swatch dominantSwatch = palette.getDominantSwatch(); ...
private static Palette.Swatch findBackgroundSwatch(Palette palette) { // by default we use the dominant palette Palette.Swatch dominantSwatch = palette.getDominantSwatch(); ...
В Android для вычисления цвета для фона уведомления берётся левая половина изображения, чтобы был плавный переход, так как обложка альбома отображается в правой части уведомления:
Я склоняюсь к алгоритму, что заложен Windows - он берет цветной, частоиспользуемый и самый яркий цвет из картинки после квантования. Я думаю, цвета акцента нам будет более, чем достаточно.
А второй цвет для текста, рассчитанный на основе обложки альбома?Можно самому выбирать из белого или чёрного на основе контраста с фоном, но это будет хуже выглядеть, чем цвет из обложки, как тут:
Его можно посчитать на основе первого цвета (как раз в контраст)