Вопрос: как ты сделал заливку под цвет кавера?Просто растянул обложку до неприличия, примерно 200000px в ширину
В идеале - менять цвет обложки, как это сделано в Hameleon. Иначе не будет совместимости со старыми скинами.
Если только не добавить опцию в настройки плеера, то есть фактически интегрировать аналог плагина Hameleon.Я это и имел ввиду.
Если только не добавить опцию в настройки плеера, то есть фактически интегрировать аналог плагина Hameleon.
Я это и имел ввиду.
Даже с одной точкой неплохой результат получается.Это вообще несерьёзно, в одной точке может быть случайный цвет.
Довольно хитрой должна быть эта функция, даже интелектуальной.
Зачем сканировать все пиксели, достаточно взять несколько точек.
Даже с одной точкой неплохой результат получается.
Это вообще несерьёзно, в одной точке может быть случайный цвет.
А в каком виде это отдавать скину?Поскольку без скриптов здесь не обойтись, то, наверное, добавить функцию, возвращающую основной цвет кавера в формате TColor, может, ещё и цвет фона.
Поскольку без скриптов здесь не обойтись, то, наверное, добавить функцию, возвращающую основной цвет кавера в формате TColor, может, ещё и цвет фона.
А в качестве нотификатора вполне подойдёт onTrackStarted.
А в каком виде это отдавать скину?
// for the background we only take the left side of the image to ensure
// a smooth transition
Или обложка альбома прилететь с интернета с запозданием.Тогда напрашивается свой нотификатор со своими внутренними переменными, как сделано для спектрума.
В Android для вычисления цвета для фона уведомления берётся левая половина изображения, чтобы был плавный переход, так как обложка альбома отображается в правой части уведомления ...Это частный случай, его принимать во внимание вообще не стОит, картинка может быть разделена и по вертикали на два преобладающих цвета (да и вообще, как угодно) - классический пример: небо и земля. Текст может располагаться в любой стороне от кавера, и сверху и снизу. Кому-то наверняка захочется на основе полученных цветов перекрасить ещё и плейлист и фонотеку.
Это частный случай, его принимать во внимание вообще не стОит, картинка может быть разделена и по вертикали на два преобладающих цвета (да и вообще, как угодно) - классический пример: небо и земля. Текст может располагаться в любой стороне от кавера, и сверху и снизу.
Другое дело, что выбрать фоном, а что цветом текста/других элементов? В скрипте это ещё можно проанализировать, скорректировать, в конце концов взять для того же текста контрастный цвет относительно преобладающего в кавере, а жёсткая ссылка на ресурс может привести в каком-то случае к почти нечитаемому тексту.
Речь не про то, что обложка альбома может быть по разному визуально разделена, а то что в дизайне скина может быть плавный переход в один сплошной цвет с любой стороны от обложки альбома.Картинка в общем случае может весьма пёстрой. И какой там будет результирующий цвет и о каком плавном переходе может идти речь?
В Android плавный переход слева и вычисляется цвет для фона на основе левой половины обложки альбома всегда, независимо от того, как визуально разделена обложка альбома.Это лишь одна единственная дизайнерская идея, наверное, не только для этого реализуется эта фича и не думаю, что все сразу кинутся её повторять.
Цвет для текста специально вычисляется таким образом, чтобы был читаемым и достаточно контрастным поверх цвета фона. То есть цвет текста зависит от цвета фона.А почему "цвет фона" должен использоваться именно для фона? К примеру, в случае монохромного скина это может и цвет текста или элементов управления.
Резюме: не хорошо вычислять цвет по половинке картинки, в оставшейся может оказаться совсем другая палитра.
(https://i.imgur.com/SZREmxP.png)
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();
...
В Android для вычисления цвета для фона уведомления берётся левая половина изображения, чтобы был плавный переход, так как обложка альбома отображается в правой части уведомления:
Я склоняюсь к алгоритму, что заложен Windows - он берет цветной, частоиспользуемый и самый яркий цвет из картинки после квантования. Я думаю, цвета акцента нам будет более, чем достаточно.
(https://i.imgur.com/3Gtdkj7.png)
А второй цвет для текста, рассчитанный на основе обложки альбома?
Можно самому выбирать из белого или чёрного на основе контраста с фоном, но это будет хуже выглядеть, чем цвет из обложки, как тут:
Его можно посчитать на основе первого цвета (как раз в контраст)
Я склоняюсь к алгоритму, что заложен Windows - он берет цветной, частоиспользуемый и самый яркий цвет из картинки после квантования. Я думаю, цвета акцента нам будет более, чем достаточно.
ИИ сделал выборку из статей по этой теме. Действительно, всё не так просто и однозначно:
я буду использовать тот же алгоритм, что используется в мобильной версии. именно его использует сама система для извлечения цветов для виджетаЭтот алгоритм где-то описан?
Этот алгоритм где-то описан?
Теперь она не работает.
Сделано в AIMP6 Beta 4, можно поиграться.Работает, но иногда явно неудачные цвета подбираются:
Попробуйте на 3069-м билдеДля этих примеров цвет исправлен, но в большинстве других случаев стало хуже. Он будто перестал брать акцентный цвет для foreground
Для этих примеров цвет исправлен, но в большинстве других случаев стало хуже. Он будто перестал брать акцентный цвет для foreground
Он не обязан брать акцентный для foreground-а, он должен взять второй преобладающий цвет, у которого допустимая контрастность по отношению к фону.
В качестве эталона надо смотреть, как работает на мобильной версии. Если там цвета такие же - значит все нормально
Похоже баг: иногда цвет есть, но при повторном открытии трека он меняется на серый
Попробуйте на 3070-й сборкеИсправлено