![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неправильная отрисовка прозрачности в KOLPng [Delphi7, WinXP]
KingMidas © (2006-11-28 16:44:00)Отступление: Делаю программу с использованием KOL для просмотра скинов к CORElet'у MV (mediaviewer.motofan.ru). Пользуясь случаем хочу поблагодарить В. Кладова и все KOL community за KOL&MCK !
Задача: Мне надо выводить в программе PNG файлы с прозрачностью. Но она (прозрачность) может быть разной.
Например: "Цвет - Индекс: 0" (с маской), "Альфа-канал"
Собственно проблема: KOLPng не всегда правильно отображает файлы с прозр. и маской: если на изображении внутри маски есть цвет совпадающий с цветом прозрач., то он (внутри маски) тоже становится прозрачным. Пробовал использовать KOLGraphic, но не разобрался как же вывести png с прозрачностью. Сейчас единственный способ правильно вывести любые файлы это использовать GDI+ (но не хочется исп-ть из-за того что его нет в Win9x). Кто-нибудь может подсказать:
В чем проблема в KOLPng? Или же другую библиотеку к-я бы правильно отрисовывала любые PNG ?
Заранее большое спасибо за ответы.
Barloggg (2006-12-04 16:21:00) [1]вообще-то маски в png файлах нет.
во всяком случае их нет в таком понимании.
есть альфа-канал для каждого пикселя.
Sapersky (2006-12-01 17:39:00) [2]Есть функция AlphaBlend, которая выводит 32-битный битмап с учётом альфа-канала. Использует premulted alpha, т.е. цвета нужно заранее умножить на альфу.
Есть AlphaPut/MMXAlphaPut из SpriteUtils.
KingMidas (2006-12-01 13:58:00) [3]Vladimir Kladov, а KOLPng разрабатывался для использования с заменой системных библиотек (SysDcu) ? Со стандартными он НЕпрозрачные файлы показывает прозрачными.
Еще обнаружил, что время от времени в одних и тех же файлах то показывает прозрачность, то нет...
Alex3 (2006-11-29 12:07:00) [4]>KingMidas + В скобках проги к-ые могут вытащить маску
качай с этой страницы
http://www.3a-soft.com/pgr1.php?pg=amask
Vladimir Kladov (2006-11-28 21:09:00) [5]Не знаю как в GDI+ но в моем KOLPng есть AlphaScanline. Руками, но можно вытащить. А дальше как хотите. Если через OpenGL например, то можно в качестве канала A замиксить. Через обычный GDI не знаю, c Layers не работал.
KingMidas (2006-11-28 17:04:00) [6]+ В скобках проги к-ые могут вытащить маску
KingMidas (2006-11-28 17:03:00) [7]+ В скобках проги к-ые могут вытащить маску
KingMidas (2006-11-28 17:00:00) [8]Barloggg, спасибо за ответ, но каквытащить маску из таких "непростых" png (GDI+, IrFanView)
Если можно приведи пример, пожалуйста!
Barloggg (2006-11-28 16:49:00) [9]хи, а ведь точно. спецификация PNG имеет полноценный альфа канал.
ну, надо полагать не та функция.
ой. момент. прочел еще раз.
все правильно.
маска подразумевает цветовой ключ. и вариантов нет.
хотит частичную прозрачность? делайте маску адекватную.
маска как раз вырезает дырки. на то она и маска.