![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Poseidon |
|
||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Нужна функция, которая умеет копировать любой png (вне зависимости от наличия альфа-канала) по определенным координатам. Сейчас у меня есть вот что:
На некоторых картинках отрабатывает замечательно, но на некоторых не проходит условие (13 строка) и на выходе отдает "пустой" квадрат. Без этого условия 15я строка понятное дело выдает AV. Прилаживаю картинку, с которой и возникают проблемы. Вот набросал пример использования, что бы проще было:
С графикой я не очень, так что возможно тут не учтена какая-то мелочь. Но эта "мелочь" мне жизни не дает уже который день. Присоединённый файл ( Кол-во скачиваний: 7 )
aaa.png 5,89 Kb-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||
|
|||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Вариант PNG -> BMP -> COPY -> BMP -> PNG не подойдёт?
Добавлено через 1 минуту и 18 секунд Ибо надо учитывать цветовые схемы:
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Этот вариант потеряет прозрачность. Хотелось бы ее оставлять.
Можно здесь по-подробнее? -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Illusion Dolphin |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Вот код перевода из PNG в BMP, отсюда можно отковырять то, что надо:
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
COLOR_RGBALPHA, то моя функция отрабатывает нормально. Если COLOR_PALETTE, то глючит. Наткнулся тут еще на схожую тему, может еще там что интересного нарою. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Illusion Dolphin |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Для этого LoadPNGImagePalette функция в том же листинге
Там только часть, я сюда больше скинул листинга. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||
|
|||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Мне не очень нравится вариант с конвертированием в bmp.
Я взял из той темы код функции ConvertToRGBA, который выложил x128 и внедрил в свою CopyPNG. В итоге получилось вот что:
Пока на тех картинках, что мне попадаются, работает. Спасибо Illusion Dolphin за помощь, без твоих наводок не разобрался бы. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| Illusion Dolphin |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Ну ConvertToRGBA это не совсем кошерно
Учитывая исходники - эта проверка пшик, т.к. код вернёт непустой указатель при любом входе в вашем случае:
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
||||||
|
|||||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Ну, в таком виде как сейчас, да. Хотя до этого эта проверка избавляла от не нужного AV.
Добавлено через 1 минуту и 17 секунд Пользователю, по сути, все равно что там COLOR_RGBALPHA или COLOR_PALETTE. Главное что бы картинка отображалась. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |