![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
||||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: нет Всего: 40 |
так там в ссылке указано "как сделать". сформулируй вопрос. -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
lorents, есть класс TPngObject . У него свойство AlphaSanline пробегаешься по альфе и смотришь значение. Если значение 0 - полная прозрачность, то пиксель с теми же координатами заменяешь на определенный цвет (свойство ScanLine). Начиная с делфи 2009 этот класс поставляется с делфей. Для более ранних версий его можно скачать (например с torry.net)
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
Может кто-нибудь подкинуть ссылки на статьи о PNG (желательно на русском), т.к. ничего нормального найти не получается, в википедии не то что надо. В основном интересует информация о маске и всё что касается прозрачности.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
формат png бывает 2х по цветности видов 8бит и 24бит на пиксель и 2х видов по прозрачности. Прозрачность цвета (записывается прямо в палитре) и прозрачность пикселя. Прозрачность пикселя храниться отдельно в виде дополнительного 8ми битного битмапа у которого вместо цвета значение прозрачности. Размер этого битмапа равен размеру исходной картинки. Тонкости размещения по секциям и сжатия в данном контексте думаю не интересны. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
Alexeis, понятно. спасибо.
пойду разбираться дальше А Вы не знаете как программно сделать вот это http://www.artlebedev.ru/tools/technogrette/img/png-3/ |
|||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
как-то так...
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Так алгоритм я уже описал. TPngObject после загрузки определит такую картинку как 2 битмапа (работает аналогично TBitmap) . Обращаешься к пикселам как к матрице высота х ширина, точнее получается массив указателей на строки. Если сильно нужно, то можно обратиться к данным и как к непрерывному массиву, но тогда порядок строк будет обратным (так приятно хранить битмап) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 6 Всего: 27 |
Знаем. Нужно пройтись по всем пикселям, и заменить их цвет по формуле Color = Alpha/255 * Color
Это сообщение отредактировал(а) Bitter - 13.7.2010, 12:07 |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
AntonN, а можно скомпилировать в ехе, у меня проста не под рукой Delphi
|
|||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
Bitter,
это нужно лишь там, где неполная формула блитинга (например в updatelayaeredwindow), в случае автора это лишь исказит информацию в файле. Добавлено через 4 минуты и 32 секунды lorents, вот http://desksoft.ru/index.php?downloads=att...ents&id=279 (rar) только сначала забекапь те картинки, над которыми будешь экспериментировать |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
||||
|
||||
| AntonN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.8.2006 Репутация: 7 Всего: 18 |
Резервную копию оставь, вдруг не понравится
В комбобоксе выбирается цвет которым зальется облась с нулевой альфой (открой png в обычном виндовом Пейнте - увидишь). Хотя как по мне такая "фича" специфична, например если картинка будет поворачиваться (текстура в игре) то заливка может потом вылезти в виде цветной каймы по краям. |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
AntonN, код, что надо, Спасибо
есть сайт по оптимизации картинок PunyPng и он делает тоже самое, что и твой код Твой код проиграл в двух картинках. я использую определенный алгоритм оптимизации png. поэтому результаты крайне точные, есть возможность исправить твой код, чтобф он не проигрывал? прикрепил картинки, которые проиграли Присоединённый файл ( Кол-во скачиваний: 14 )
Comic_Book_Guy.png 87,36 Kb |
|||
|
||||
| lorents |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 548 Регистрация: 2.4.2008 Репутация: нет Всего: нет |
вот вторая картинка
Это сообщение отредактировал(а) lorents - 13.7.2010, 14:24 Присоединённый файл ( Кол-во скачиваний: 17 )
ff_logo_big.png 96,94 Kb |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |