|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.06.2013, 03:55 | #1 |
Новичок
Джуниор
Регистрация: 01.06.2013
Сообщений: 1
|
Копирование части PNG файла в другой с учетом альфа канала
Суть такова: Использую pngimage. Есть 4 png файла. Задний фон, средний план, движимый объект и передний план. Все работает с учетом даже альфы:
... png_fon.Canvas.Draw(0,0,png_fon_r); png_fon.Canvas.Draw(0,0,png_srednii _plan); Png_fon.Canvas.Draw(x,y,png_figura) ; Png_fon.Canvas.Draw(0,0,png_peredni i_plan); Form1.Canvas.CopyRect(BufferOn,png_ fon.Canvas,BufferOff); ... Но! Понимаю, что для увеличения скорости сработки, правильнее копировать прямоугольную область всех слоев, размером движимого объекта и выводить в нужном месте. CopyRect работает, но отсекает Альфу. На чистом битмапе не хочу. Кто подскажет, как заменить CopyRect для PNG с альфой. Буду очень благодарен за код. Мой движок работает и так, но медленно и неудобно анимированные объекты записывать в разные файлы. Хочу добавить: использую Delphi 7, верстаю дизайн 2D игры прямо в фоточтобе, за что и люблю PNG. Очень нужна помощь, ибо не программер а дизайнер. Последний раз редактировалось KriatonuS; 01.06.2013 в 04:03. Причина: Уточнение |
02.06.2013, 05:12 | #2 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Что дизайнер по нику заметно ). Не могу быть целиком и полностью уверен в ответе, ибо с альфа-каналом не пробовал эту функцию, но попробуй использовать BitBlt.
Пример использования и описание: Код:
Параметры этой функции: 1) дескриптор приемника (Handle) типа HDC; 2) координата Х левого верхнего угла области, в которую копируем; 3) тоже самое, только для Y; 4) размер области приемника по Х; 5) размер области приемника по Y; 6) дескриптор источника (Handle) типа HDC; 7) координата Х левого верхнего угла области, из которой копируем; 8) тоже самое, только для Y; 9) код растровой операции.
Если помог, проси поставить минус. Будь оригинален!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
копирование данных из одного файла в другой | kos987123 | Microsoft Office Excel | 3 | 11.09.2012 14:13 |
Копирование к строк из одного файла в другой | A_Orlov | Помощь студентам | 1 | 15.06.2010 14:49 |
Копирование данных из одного файла в другой! | vipcrash | Microsoft Office Excel | 17 | 23.01.2010 21:11 |
Выделение и копирование части документа на основе структуры файла | satyr_of_frost | Microsoft Office Word | 23 | 12.02.2009 09:15 |
Отрисовка PNG с альфа-каналом на десктопе | Whisper | Помощь студентам | 2 | 02.01.2008 19:24 |