![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 20.10.2011
Сообщений: 138
|
![]()
Подскажите пожалуйста ка наложить png на png и вывести в image
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,442
|
![]()
Приводитшь их к формату bmp, затем в bmp1.Draw(<координаты>,bmp2).
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 20.10.2011
Сообщений: 138
|
![]()
Подскажите как в FireMonkey закрасить image каким то цветом но так чтоб этот цвет был полу прозрачный
|
![]() |
![]() |
![]() |
#4 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
![]()
Вопрос приблизительно такой же. Имеется 2 изображения, которые нужно наложить друг на друга с сохранением альфаканала. Выводить ни куда не нужно. В интернете есть несколько процедур, делающих такое, но конкретно с этими двумя картинками не получается. Как я понял, в одной png нет альфаканала, из за чего процедуры "падают". Нужно какое-то глобальное решение, позволяющее клеить любые png. Проблемные картинки, как пример, в аттаче. Помогите пожалуйста найти, и исправить проблему.
Один из вариантов склейки. Код:
|
![]() |
![]() |
![]() |
#5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,874
|
![]()
Ну добавьте альфу. Емнип:
Код:
|
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
![]()
Пробовал ещё до того, как написал пост. Не вышло. К тому же как я уже написал, нужно универсальное решение, которое будет работать с любыми типами png не зависимо от того, есть в png alpha, или её нету.
Я отслеживал тему несколько дней, ответов не было. Решил что больше их и не будет. Последний раз редактировалось doktor255; 26.12.2013 в 22:03. |
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,874
|
![]()
Так, а что значит "процедуры падают" ?
Обычный draw устроил ?надо именно со сканлайнами и альфой колдовать ? Завтра соберу из этой функции тестовое приложение, погоняю, а то даже не понимаю в чём трабл. Там не было ответов, потому что, емнип, в имеющемся коде никто не хотел копаться, а предложенные методы были отринуты... |
![]() |
![]() |
![]() |
#8 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
![]()
Объясню задачу ещё раз. Имеем 2 изображения на HDD с неизвестными характеристиками Alpha. Задача - написать универсальную процедуру.
procedure BlendPNG(Layer1, Leyer2: TPngImage; X,Y: integer); где: Layer1 - png картинка на которую нужно "наклеить" вторую картинку Layer2 - вторая png картинка, которая наклеивается на первую X, Y - координаты склейки. Нужны для того, чтоб я мог двигать верхний слой относительно нижнего слоя; Метод реализации не имеет значения. Главное чтоб метод был максимально оптимизирован, так как подобная операция проделывается до 50 раз единовременно. Выше я дал 2 png картинки, одна из которых не имеет alpha. Процедура слейки должна уметь склеивать как такие картинки, так и картинки с альфой, либо картинки без алфы. То есть любые варианты png. А если процедура будет расширять холст в случае выхождения наклеиваемого слоя за границы подложки, то будет вообще идеально. Последний раз редактировалось doktor255; 26.12.2013 в 23:49. |
![]() |
![]() |
![]() |
#9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,874
|
![]()
Тогда примеры всех пар картинок в студию, а то только по одной паре не тру, я не смогу гарантировать что алгоритм будет универсальный, т.к. не знаю, даже если найду у себя картинку чтобы проверить (а этого мне делать не хочется, программирование != тестирование), то она может не быть из того случая, что нужен Вам.
Про склейку и расширение холста ещё в той теме было сказано. Повторяю, это рассчитывается просто и легко аналитически. холст.сет_сайз(макс(к1.ширина, х+к2.ширина), макс(к1.высота, х+к2.высота)) Сейчас проверю Вашу функцию на данных картинках погляжу что за косяк и попробую добиться норм работы. Хотя тут не вопрос программирования скорее, а дебага. |
![]() |
![]() |
![]() |
#10 |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
![]() |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PNG | nXs | Мультимедиа в Delphi | 2 | 31.10.2010 12:53 |
PNG | _-Re@l-_ | Общие вопросы Delphi | 8 | 15.07.2010 16:48 |
Ковертирование из png 24 бит в png 8 бит | isat | Общие вопросы .NET | 0 | 22.03.2010 13:38 |
*.png | Killbrum | Помощь студентам | 3 | 30.08.2008 15:51 |
Png | Witaliy | Мультимедиа в Delphi | 3 | 25.05.2008 23:10 |