![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Помогите пожалуйста решить задачку.
Есть 2 PNGImage с прозрачными областями, необходимо наложить их друг на друга ("как в Photoshop слои") и сохранить в Третий PNGImage. (Вывод через TImage.picture.assign(PNG_3).) Пробовал через Canvas.Draw и через CopyRect, полупрозрачные переходы приобретают смешанный цвет c clBlack или с цветом заливки если ее проводить. При всем этом образуется погрызенный край. Со Scanline мозгов не хватает, Но это думаю был бы самый идеальный вариант. Это сообщение отредактировал(а) Flashboy - 10.8.2010, 03:27 |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
примерно как тут http://desksoft.ru/index.php?downloads=att...ents&id=256
а тут есть как png сконвернуть в Tbitmap и обратно http://desksoft.ru/index.php?downloads=att...ents&id=254 |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Спасибо но это не подошло, нужно чтобы при всем этом сохранялась прозрачность.
Потому что под Image, в который этот PNG выводиться, происходит анимация на другом Image. В этом случае результат во на рисунке: ![]() А нужно чтобы было так: ![]() Это сообщение отредактировал(а) Flashboy - 3.8.2010, 20:51 |
|||
|
||||
AntonN |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
там в процедуре блита создается буферный битмап. Ну и рисуйте не на канву, а на буферный битмап, который перегоняйте в png (не забывая альфу рисовать в буфере)
|
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Ага, теперь понятно.
Премного благодарен! Осталось разобраться как правильно битмапу альфу рисовать.. |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Все решилось и работает супер! AntonN, Огромное спасибо за то что отозвался и дал направление! |
|||
|
||||
Norfonzor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
помогите мне разобраться как наложить PNG друг на друга с прозрачностью!
|
|||
|
||||
Flashboy |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
это для 2х Png, через конвертацию PNG2BMP => Blend=>BMP2PNG:
И упрощенный вариант, рисуем на буферном BMP и после конвертируем в PNG:
Это сообщение отредактировал(а) Flashboy - 10.3.2011, 20:53 |
||||||
|
|||||||
Norfonzor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
Flashboy, у меня появляется ошибка на "Undeclared identifier TPngImage". Компонент TPngImage скачал от сюда: http://delphidevelop.ru/load/0-0-0-36-20, добавил путь (Дельфи -> Main Menu -> Tools -> Environment Options) в Library Path.
Что я сделал не правильно? |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
В вашем компоненте нет TPngImage, Там есть TPngObject, попробуйте все изменить на него. В моем примере используется TPngImage идущий в составе компонентов D2007-D2010. |
|||
|
||||
Norfonzor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
изменил код на:
Хотел нарисовать на клетчатой бумаге черную букву А ![]() выходит не понятно что Это сообщение отредактировал(а) Norfonzor - 12.3.2011, 11:56 |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
У меня вышло вот что, первое с прозрачным фоном, второе с белым: ![]() ![]() Попробуй вот этот вариант, немного сложнее, работает для подобных задач:
Это сообщение отредактировал(а) Flashboy - 13.3.2011, 15:12 |
|||
|
||||
Norfonzor |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 17.10.2008 Репутация: нет Всего: нет |
Мистика!
2 код:
вот что получилось: ![]() |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
||||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 5 Всего: 128 |
мням... а если попробовать использовать gdi+?
AFAIK там проблем с прозрачностями и png вроде бы не было... -------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |