|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.12.2013, 09:57 | #11 | |
Заблокирован
Регистрация: 31.03.2011
Сообщений: 976
|
Цитата:
Код:
Последний раз редактировалось doktor255; 27.12.2013 в 12:52. |
|
11.01.2014, 19:49 | #12 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Ну значится, мы с doktor255 несколько дней поработали, и получили такой результат. Хотя, конечно, не все его задачи мы прорешали, но сама функция работает отлично.
На вход ей подаётся две пнг-картинки: та, которая будет фоном (на которую накладывать) и та, которая будет картинкой(накладываемая). На выходе итог наложения картинок записывается в ту, которая была фоном, но переделать на то, чтобы она отдельно выдавалась (в ПНГ, задаваемую параметром, вместо создания её внутри функции), совсем несложно: убрать assign в конце, blendedPng надо сделать параметром, вместо присвоения в blendedPng результата конструирования, вызвать CreateBlank непосредственно у blendedPng (вроде ничего не забыл, но если что - пишите, я выложу готовую и проверенную). Фон в начале работы функции подгоняет свои размеры под итоговую картинку, учитывая смещение накладываемой картинки относительно фона, указанное в виде аргументов Х и У. Приоритет у накладываемой картинки, таким образом, что её пиксели будут "поверх" накладываться при смешивании с альфаканалом. В тестовой программе фон это картинка выдаваемая ползунком с подписью Back а накладываемая, соответственно, Front. Сам алгоритм смешивания - Porter-Duff . В программе также реализована конверсия из любого формата загружаемой из файла пнг-картинки в 32битную, т.к. иначе (для некоторых форматов) будут ошибки рисования. Сам алгоритм конверсии взят из интернета, ссылка прилагается комментарием в коде. Также прилагается тестовая программа, в ней можно напихать любые пнг-картинки в папочку и тестить как они блендятся. Код:
Последний раз редактировалось phomm; 11.01.2014 в 19:54. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |