![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Как на Delphi склеить 2 png. Одну картинку поставить рядом с другой. Картинки горизонтальные, вот такие: http://rghost.ru/private/48437911/c6e3d900...feedf1144fc11e1
Delphi XE3 да, с графикой я не очень дружу :( |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
png склеиваются после преобразования из в bmp. Создаешь битмап нужного размера и формата рисуешь на нем свои битмапы, затем пожимаешь обратно в png.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Тут есть у меня код, но он неправильно работает с png без альфа-канала.
blendCoeff:=aSL1[x] * 100/255/100;// здесь вываливается AV я так понимаю, что нужно сделать какие-то исправления, но... я не знаю какие Добавлено через 5 минут и 27 секунд Мне почему-то не приходят уведомления :(, хотя я подписан на эту тему Добавлено через 8 минут и 59 секунд В общем я сделал проще. Картинку без альфа-канала я конвертирую в картинку с альфаканалом
|
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Akella, просто автор неправильно сделал. Когда имеются 2е картинки, то они не обязаны иметь одинаковый формат.
Правильным решением будет привести их к одному формату (какой зависит от задачи) и тогда объединять. Если же альфаканал совсем не нужен, то просто рисуй их методом Draw Canvas-a на битмапе, а его жми в пнг. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Что я делаю не так?
Процедура нормально склеивает два BMP и потом передаётся в png
Вот как использую, но сохраняется пустой файл в итоге
Добавлено через 12 минут и 6 секунд Я так понял, что нужно добавить VAR
|
||||||
|
|||||||
phomm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 7.10.2010 Репутация: нет Всего: 1 |
Я пользуюсь примерно таким (адаптируя для каждой задачи, как и сейчас - тут подредактировал, могут быть микрокосяки):
По идее, зависимости быть не должно, но работало под дельфи7 с внешней библиотекой pngimage, для дельфи выше 2009 вроде всё уже включено |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
Да, только в новых версиях не TPNGObject, а TPNGImage и в uses нужно подключать Vcl.Imaging.pngimage
В Вашем коде достаточно будет переименовать TPNGObject в TPNGImage. Ещё один момент. в секции VAR вместо pByteArray нужно использовать Vcl.Imaging.pngimage.pByteArray
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Метод b1.Assign(png1); не работает. вместо него есть png1.AssignTo(b1);
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
почему это не работает, ведь склеивает, значит работает
|
|||
|
||||
x128 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 88 Регистрация: 29.9.2009 Репутация: 5 Всего: 7 |
В XE можно использовать и TPNGObject, его оставили для совместимости, вероятно так и в более новых версиях. pByteArray всегда жил в SysUtils т.ч. нет необходимости явно вытаскивать из PNGImage. Что касается сабжа. Чем не устроил метод Draw в PNGImage? Столько сложностей на пустом месте...
результат: http://rghost.ru/private/48466783/fb3acb34...07a5e8666c534ae |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 1 Всего: 329 |
x128, кто сказал, что не устраивает?
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |