|
23.10.2008, 00:38
|
#31
|
Нуждающийся
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений (для 12 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Odd, добавь пожалуйста в свою либу функции(ю) изменения уровней R,G,B каналов, очень надо=)
|
(Offline)
|
|
24.10.2008, 06:44
|
#32
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Сообщение от Cliffe Snake
Odd, добавь пожалуйста в свою либу функции(ю) изменения уровней R,G,B каналов, очень надо=)
|
В смысле? Например, добавить в картинку больше зеленого или красного на выбор? Так? Ты хочешь чтобы при убийстве героя экран как бы постепенно краснел? Я правильно понял?
|
(Offline)
|
|
24.10.2008, 16:41
|
#33
|
Нуждающийся
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений (для 12 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Можно и такой вариант, если не трудно.
А я имел ввиду что-то вроде этого:
....
newimg:=alpha.red(img, -20); {уменьшить уровень красного в картинке на 20}
либо такой вариант(наверно получше):
newimg:=alpha.blue(img, 255); {установить уровень синего в 255}
....
|
(Offline)
|
|
25.10.2008, 06:30
|
#34
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Ладно, я попробую такое написать. Но можно обойтись и без всего этого.
Просто, допустим, тебе надо чтобы экран постепенно покраснел.
Делаешь снимок экрана и в цикле генерируешь красный прямоугольник размером с экран. Причем у этого крассного прямоугольника цвет должен быть как и обычно FF0000, а вот прозрачность постепенно будет меняться от 0 до FF (шаг подберешь сам). Теперь просто выводишь свой снимок, а поверху его выводишь сгененрированный прямоугольник. Всё просто. Ах да. За генерирование прямоугольника отвечает функция CreateCursor из либы Menu32. Если у тебя есть главное меню в программе, то эту либу и не надо добавлять.
|
(Offline)
|
|
25.10.2008, 09:27
|
#35
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Я рассказывал, как мой сименс забавно реагирует на полупрозрачность? =)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2008, 10:10
|
#36
|
Нуждающийся
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений (для 12 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Срочно нужна функция обратная Alpha.TranslateColor(a,r,g,b).
Или расскажите как из ARGB-формата вытащить R, G и B.
Вот примеры основных цветов:
BLACK=-16777216;
MAGENTA=-65281;
BLUE=-16776961;
RED=-65536;
GREEN=-16711936;
Я хз чё с ними делать.
|
(Offline)
|
|
11.12.2008, 22:16
|
#37
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Сообщение от Cliffe Snake
Срочно нужна функция обратная Alpha.TranslateColor(a,r,g,b).
Или расскажите как из ARGB-формата вытащить R, G и B.
Вот примеры основных цветов:
BLACK=-16777216;
MAGENTA=-65281;
BLUE=-16776961;
RED=-65536;
GREEN=-16711936;
Я хз чё с ними делать.
|
Открой виндовый калькулятор и переведи все эти числа в HEX. Дальше, я думаю будет понятно. Получится, что каждые 2 буквы будут отвечать за определенный цвет, к примеру: FFAABBCC - FF - прозрачность (255), AA - красный компонент (170), BB - зеленый компонент (187), СС - синий (204). Всё просто. Первые символы FFFF FFFF игнорируешь.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.12.2008, 07:00
|
#38
|
Нуждающийся
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений (для 12 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
разобралси: Чтобы перевести ARGB в RGB надо прибавить к нему 16777216, а потом уж вытигивать цвета div'ом и mod'ом.
Это будет работать для непрозрачных цветов, с полупрозрачными может быть и нет.
Кому надо, вот соответствующие функции на MP:
Function blue(color:integer):integer; Begin color:=color+16777216; blue:=color mod 256; end; Function green(color:integer):integer; Begin color:=color+16777216; color:=color div 256; green:=color mod 256; end; Function red(color:integer):integer; Begin color:=color+16777216; color:=color div 65536; red:=color mod 256; end;
Последний раз редактировалось Cliffe Snake, 12.12.2008 в 08:05.
|
(Offline)
|
|
14.12.2008, 22:49
|
#39
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
А ещё легче это делать с помощью библиотеки Lib_bits. Тогда весь код в одну строчку уместится. Что-то типа такого:
blue:=scroll_right(color AND 255); ... green:=scroll_right(color AND 65280); ... red:=scroll_right(color AND 16711680);
|
(Offline)
|
|
20.08.2010, 14:42
|
#40
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Мне бы такая либа на блитзе не помешалаб. Ни кто мне с этим не сможет помоч?)
|
(Offline)
|
|
20.08.2010, 16:00
|
#41
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Сообщение от CRASHER
Мне бы такая либа на блитзе не помешалаб. Ни кто мне с этим не сможет помоч?)
|
По блитзу лучше у блитзеров спрашивать А вообще, суть состоит в изменении значения байта прозрачности в ARGB значении цвета.
|
(Offline)
|
|
20.08.2010, 19:49
|
#42
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Сообщение от ViNT
По блитзу лучше у блитзеров спрашивать А вообще, суть состоит в изменении значения байта прозрачности в ARGB значении цвета.
|
А у тебя нет исходника хотябы накаком нибудь языке?)
|
(Offline)
|
|
21.08.2010, 04:26
|
#43
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
Сообщение от CRASHER
А у тебя нет исходника хотябы накаком нибудь языке?)
|
По идее, как-то так:
var t:Integer;//Значение прозрачности C:Integer;//Цвет в формате RGBA begin t:=t shl 24; //Сдвиг на 3 байта (24 бита) влево C:=C and $FFFFFF xor t; //$FFFFFF=16777215 end;
И так каждый пиксел.
Код на паскале, думаю по комментариям понятно.
А вообще, неужели в блитзе нет подобной функции?
|
(Offline)
|
|
21.08.2010, 15:21
|
#44
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Lib_alpha: Прозрачность картинок
А вообще, неужели в блитзе нет подобной функции?
Что то подобное я встречал, но там только определенный цвет берется, а не массив цветов.
|
(Offline)
|
|
13.11.2010, 01:07
|
#45
|
Оператор ЭВМ
Регистрация: 04.11.2010
Сообщений: 38
Написано одно полезное сообщение
|
Ответ: Lib_alpha: Прозрачность картинок
А можно в данной библиотеке реализовать, что-бы можно было указывать чувствительность ReplaceColor? А то данная функция очень полезна для смены, к примеру, фонов изображения, но заменяет только конкретный цвет, что при замене оставляет не закрашенные пиксели другого оттенка, но того же цвета, что негативно влияет на однородность закраски.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:44.
|