Галерея UI написанных на MQL - страница 47

 
Nikolai Semko #:

сейчас много источников с нормальными png иконками с прозрачным фоном. 
Смотри сам, конечно, но твой GUI будет выглядеть намного качественнее без этой пикселезации по краям.

Да я и не спорю... Конечно выглядел бы лучше. Кстати, иконки я обрабатываю неплохо. Обрати внимание на их тень на кнопках таскбара. Делаю прозрачным фон. Но в пикселях есть цветовой "мусор" который сложно идентифицировать программно. Как эти вкрапления по краям. Они не имеют строго одного цвета и их трудно отделить от самой иконки чтобы удалить. В этом проблема.

Нужны более качественные иконки. Без пиксельного "мусора".
 
Nikolai Semko #:

сейчас много источников с нормальными png иконками с прозрачным фоном. 

Например:
https://pngtree.com/so/colored-icons

Посмотрю на досуге. Сенкс!
 
Реter Konow #:
Да я и не спорю... Конечно выглядел бы лучше. Кстати, иконки я обрабатываю неплохо. Обрати внимание на их тень на кнопках таскбара. Делаю прозрачным фон. Но в пикселях есть цветовой "мусор" который сложно идентифицировать программно. Как эти вкрапления по краям. Они не имеют строго одного цвета и их трудно отделить от самой иконки чтобы удалить. В этом проблема.

Нужны просто более качественные иконки. Без пиксельного "мусора".

в нормальных png c прозрачным фоном нет никакого мусора. Мусор появляется при неправильной обработке. Правильную функцию дал выше. 

Я раньше тоже делал с тенями. Сейчас уже так не делаю.
Современная мода без теней, градиентов и завитушек.
Минимализм короче, который идет на пользу производительности рендеринга.

 
Nikolai Semko #:

в нормальных png c прозрачным фоном нет никакого мусора. Мусор появляется при неправильной обработке. Правильную функцию дал выше. 

...

Все так, если не качать иконки "пиратски", как я много лет назад. ))) Тогда и обрабатывать особо нечего, потому что фон помечается значением -1. 

В этом случае, мой алгоритм вставляет низлежащий цвет с пиксельной поверхости под иконкой. Даже прозрачность "мутить" не нужно. 

Но если вместо -1 го у пикселя какой то другой цвет, то его нереально отделить от остальных, и функции прозрачности не помогут. В этом дело.
 
Реter Konow #:      

Но если вместо -1 го у пикселя какой то другой цвет, то его нереально отделить от остальных, и функции прозрачности не помогут. В этом дело.

Я говорю о png иконках с  прозрачным фоном (с альфа-каналом). 

 
Nikolai Semko #:
...

Я раньше тоже делал с тенями. Сейчас уже так не делаю.
Современная мода без теней, градиентов и завитушек.
Минимализм короче, который идет на пользу производительности рендеринга.


Мода, конечно, разная бывает, но если говорить строго о рендеринге, то дополнительная обработка теней маленьких иконок это просто инициализация 16*16 ячеек массива значениями вычисляемыми по детской формуле. И так для каждой иконки в окне, которых на пальцах посчитать можно. Там едва ли задержка рендеринга на миллисекунду будет. Другое дело, события перерисовки поверхностей больших канвасов с множеством элементов. Тогда несомненно, графические прибамбасы будут притормаживать. Но только на первой отрисовке, или при изменении всего канваса. То есть не всегда, а только на определенных событиях. В остальных случаях просто вынимаем сохраненный ресурс из памяти и ничего не рисуем.

Такие дела...
 
Nikolai Semko #:

Я говорю о png иконках с  прозрачным фоном (с альфа-каналом). 

Так у них как таковой прозрачности нет. Там фон помечен значением -1. Алгоритм должен просто поменять это значение на цвет низлежащего пикселя на канвасе отрисовки. То есть, смешивать цвета в данном случае нет необходимости. Но для других целей функция прозрачности очень полезна. Кстати, позаимствовал ее по твоему совету из старой статьи. Однако, почти не применял еще. Думаю где она может пригодится...
 
Nikolai Semko #:

...

Кстати, есть графическая проблема с которой не справился. Реально сложная задача. Пытался решить и бросил. Не потому что не мог, но слишком много времени уходило. Взвесил за и против и отказался от дальнейших попыток. 

Знаю что ты большой специалист по работе с цветами канваса. Не могу не спросить.

И так, задача следующая:

Как расчитать цветовой градиент рамки простой кнопки таким образом, чтобы он гармонировал с цветом поверхности кнопки и плавно переходя, подчеркивал изгиб не меняя его.  Например, у нас светложелтая кнопка. Как правильно раскрасить ее рамку в 4 - 5 пикселей толщиной? Нужно иметь ввиду, что с разных сторон рамка по разному освещена. Спереди и слева, рамка светлая, справа и снизу - темная. Также, чем ближе к основанию, тем рамка темнее. Плюс, там блики есть. 

Как расчитать цвета для рамки при заданном исходном цвете кнопки?


Такой вот вопрос. :)
 

Наглядный пример:


По краям кнопка не раскрашена. Причина - не получилось вычислить нужные цвета. Обычный градиент не подходит. Тут нужна некая формула расчета света, тени, угла, и оттенка цвета. Не хватает компетенции в этой области.

 
Реter Konow #:
Кстати, есть графическая проблема с которой не справился. Реально сложная задача. Пытался решить и бросил. Не потому что не мог, но слишком много времени уходило. Взвесил за и против и отказался от дальнейших попыток. 

Знаю что ты большой специалист по работе с цветами канваса. Не могу не спросить.

И так, задача следующая:

Как расчитать цветовой градиент рамки простой кнопки таким образом, чтобы он гармонировал с цветом поверхности кнопки и плавно переходя, подчеркивал изгиб не меняя его.  Например, у нас светложелтая кнопка. Как правильно раскрасить ее рамку в 4 - 5 пикселей толщиной? Нужно иметь ввиду, что с разных сторон рамка по разному освещена. Спереди и слева, рамка светлая, справа и снизу - темная. Также, чем ближе к основанию, тем рамка темнее. Плюс, там блики есть. 

Как расчитать цвета для рамки при заданном исходном цвете кнопки?


Такой вот вопрос. :)

1. по цвету - контрастные цвета, есть таблица ( в данном случае должен получиться оттенок темно синего)

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