![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Gigabyte |
|
|||
![]() Студент-халявщик ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 1.11.2004 Где: ПЫтер Репутация: нет Всего: 3 |
как скопировать одно изображение на другое с прозрачностью 50%
-------------------- ![]() ![]() |
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Gigabyte, у меня большие сомнения что это можно сделать стандартными средствами, но математику ни кто не отменял
![]() примерно так:
хотя получится это наверное плохо, вообщем нашел следующий пример
Это сообщение отредактировал(а) alexeis1 - 12.4.2006, 13:12 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Поясняю код TRANS - определяет прозрачность исходного изображения
(255 - trans) - прозрачность фона - в нашем случае они равны и ,следовательно, этот код при TRANS=128 (50%) будет делать тоже что и мой ![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
В Win98 и старше имеется функция AlphaBlend.
И ничего не нужно изобретать - прозрачность рисует любую - от 0 до 255. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Snowy, случайно нет примера, а то в документации не совсем ясно описан последний параметр
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Snowy, а если после
поменять "цвет "альфа канала у отдельных писелей или областей, то как это скажется на результирующем изображении при такой отрисовке?? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Snowy |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Меняй как хочешь.
Единственное требование - битмап должен быть 32 бита.
|
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Спасибо
![]() -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 2 Всего: 68 |
S - что рисовать, D - где рисовать, x,y - в каком месте на D нарисовать S. layered - прозрачность от 0 до 255 |
|||
|
||||
DelphiFun |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Alexeis, а ты не объяснишь ли случаем, по каким формулам работает функция MixBytes в приведённом тобою асмовом коде?
(сорри, но в асме я не силён :( ) |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
DelphiFun, да ничего особенно нового не делает (см пост http://forum.vingrad.ru/index.php?show_typ...ead=1&hl=#). Ее особенность только в том, что она смешивает не сами цвета, а отдельно их составляющие, но делает это при помощи целочисленных операций, поэтому теоретически это должно работать быстрее, но на практике большую часть времени занимает отрисовка битмапа, потому в данном случае это некритично
![]() Добавлено через 2 минуты и 38 секунд FG - верхний слой BG - нижний слой TRANS - степень прозрачности от 0..255 формат пикселя может быть либо 24 либо 32 бита -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
DelphiFun |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
т.е. берёт верхний цвет в RGB: (155,126,250)
нижний слой, скажем: (128,190,10) И чего с ними делает? ![]() trans, например: 50 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
blue := byte(((SrcAlpha) * Src.Blue + (255 - SrcAlpha) * Dst.Blue) / 255); -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
DelphiFun |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
а SrcAlpha это trans в нашем случае? или откуда берёться эта переменная?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |