| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Photoshop, Illustrator, Corel и т.п. > Рисование графики для програм |
| Автор: VinSmile 19.11.2006, 05:43 |
| Доброго всем времени суток |
| Автор: Bitter 19.11.2006, 14:23 |
| Можно написать вспомогательную программку, которая преобразует заданный тобой цвет (или цветовой интервал) в другой цвет. Т.е. если у тебя края рисунка имеют разные оттенки зеленого, нужно программно заменить их на чистый зеленый. Таким образом прогоняешь все рисунки через такую прогу, и всё. |
| Автор: $tatic 19.11.2006, 15:27 |
| А использовать формат с альфа-каналом (например, PNG) не получится? |
| Автор: VinSmile 20.11.2006, 01:35 | ||||
Я думал про это, но к сожалению ничего не придумал, ведь если просто заменить все оттенки зеленого то получиться фигня полная, во первых - будут рваные края, во вторых если в середине рисунка используються эти же оттенки зеленого, что я получю??? Чтобы написать такую прогу нужно делать глубокий анализ рисунка. находить области чистозеленого, анализировать границу, вычислять порог насыщености при котором цвет менять на чистозеленый, а до этого порога менять на немного темнее или светлее (для этого нужно проверять общюю градацию цвета в этом участке) от соседнего не прозрачного цвета.......... Возможно когда у меня будет три высших образования и я займу первое место на (как минимум областной) олимпеаде по математике, я и напишу такую программу, но не счас
Получиться, но это ведь обходной вариант Я знаю два метода: 1. Использование маски 2. Вычитание цвета (самое популярное), а ведь если оно самое популярное, то для этого есть причины, да и графику они наверняка без проблем рисуют, а раз рисуют значит есть методы, значит знают как это делать, и может быть зайдут на этот топик и поделяться с нами этим секретом |
| Автор: arilou 20.11.2006, 10:47 | ||
|
| Автор: Брат Евген 21.11.2006, 10:50 |
| ...наверное я чтото не понял.. зачем прозрачность заливать цветом? |
| Автор: VinSmile 22.11.2006, 19:43 | ||||
Причем тут альфаканал, че вы в него так вперлись, будем щитать что я не говорил зачем мне это нужно, просто мне нужно сделать так, чтобы небыло усреднения цветов. P.S. Если вы писали приложения с рисованим интерфейсом, то я не понимаю откуда у вас такое влечение к альфаканалу?!?!?! Если нет, то можете поверить наслово, он не самый лучший вариант!!!! P.P.S. Меня интересует ответлиш на тот вопрос который я поставил, не утруждайте себя набирать ответ если вы этого не знаете!!!
Чтобы сделать прозрачность.... ;) |
| Автор: Брат Евген 22.11.2006, 20:23 |
| ...хм, сделал прозрачность в фотошопе, никаких границ зеленых не нашел((( как ты их делаешь?) может на белом фоне рисуешь? попробуй на прозрачном делать ничего заливать не придется... ...или я в самом деле ничего не пАнимаю))) |
| Автор: Caramel 23.11.2006, 18:12 | ||
кажется есть такой метод в гифе - делать на ярком фоне рисунок, который потом вычитается. Хотя конечно легче просто делать с белым фоном, который при сохранении можно выключить Сдается мне, что тут просто нужны нормальные объяснения от VinSmile |
| Автор: VinSmile 24.11.2006, 01:57 |
| Ладно, попытаюсь обяснить НОРМАЛЬНО... Повторяю ещо раз, что графику я рисую для того чтобы использовать ее в програмах!!! Тоесть я использую свои картинки вместо стандартных кнопок и т.д. Отображаю я их с помощью API функций Windows (если вы не програмист не берите в голову), так вот... Есть такая функция TransparentBlt() которая копирует битовую карту с одного контекста в другой исключая биты заданого цвета, чтобы вы не уговаривали меня применять рисунки с альфаканалом, я вам приведу скорость выполнения этой функции: итак на моих 1,8 гигагерц эта функция прорисовывает рисунок розмером 150х150 сто тысяч раз за 4,1 секунды, даже не пытайтесь мне доказать что вы этого добъетесь с помощю декодирования рисунка с альфаканалом!!! Но!!! Вычитаеться только цвет 0x00FF00 (я использую именно этот, но можно указать любой другой), и если пиксель имеет другой цвет, пусть даже на глаз этого не отличиш, он отобразится |
| Автор: Caramel 25.11.2006, 00:02 |
| VinSmile, вполне. Не сердитесь, но иногда проблем на столько замыливает глаза, что подробно объяснить даже в голову не приходит. Все кажется очевидным с первого раза. Я вам, к сожалению, в вашей проблеме не помогу. Но думаю найдутся люди, которые смогут подсказать дельное решение после вашего объяснения |
| Автор: Брат Евген 25.11.2006, 13:05 |
| нарисовать на прозрачном фоне и создать ниже слой залитый вашим прозрачным цветом... потом свести в один слой, я думаю должно получится))) |
| Автор: VinSmile 26.11.2006, 00:09 |
| Неполучилось |
| Автор: Брат Евген 2.12.2006, 21:45 |
| ...ту тогда я пас... думаю не в фотошопе дело... |
| Автор: VinSmile 4.12.2006, 01:23 |
| Нашол решение проблемы... Все дело в выделении... Тему прошу закрыть... Есть вопросы??? В ПС... Устал... Время то познее потому и так коротко |
| Автор: Caramel 4.12.2006, 15:08 |
| VinSmile, обычно решение проблемы постят прямо в теме. Что бы потом не пришлось каждому объяснять какое оно, это решение) Да и познавательно это будет |
| Автор: VinSmile 4.12.2006, 19:18 |
| Справедливо |
| Автор: Str!pe 6.12.2006, 20:53 |
| Я предлагаю выложить образец для того что бы было понятнее всем нам о чем идет речь. |