Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

Неправильная отрисовка прозрачности в KOLPng   Найти похожие ветки 

 
KingMidas   (2006-11-28 16:44) [0]

Отступление: Делаю программу с использованием KOL для просмотра скинов к CORElet"у MV (mediaviewer.motofan.ru). Пользуясь случаем хочу поблагодарить В. Кладова и все KOL community за KOL&MCK !

Задача: Мне надо выводить в программе PNG файлы с прозрачностью. Но она (прозрачность) может быть разной.
Например: "Цвет - Индекс: 0" (с маской), "Альфа-канал"
Собственно проблема: KOLPng не всегда правильно отображает файлы с прозр. и маской: если на изображении внутри маски есть цвет совпадающий с цветом прозрач., то он (внутри маски) тоже становится прозрачным. Пробовал использовать KOLGraphic, но не разобрался как же вывести png с прозрачностью. Сейчас единственный способ правильно  вывести любые файлы это использовать GDI+ (но не хочется исп-ть из-за того что его нет в Win9x). Кто-нибудь может подсказать:
В чем проблема в KOLPng? Или же другую библиотеку к-я бы правильно отрисовывала любые PNG ?
Заранее большое спасибо за ответы.


 
Barloggg   (2006-11-28 16:49) [1]

хи, а ведь точно. спецификация PNG имеет полноценный альфа канал.

ну, надо полагать не та функция.

ой. момент. прочел еще раз.
все правильно.

маска подразумевает цветовой ключ. и вариантов нет.
хотит частичную прозрачность? делайте маску адекватную.
маска как раз вырезает дырки. на то она и маска.


 
KingMidas   (2006-11-28 17:00) [2]

Barloggg, спасибо за ответ, но как вытащить маску из таких "непростых" png (GDI+, IrFanView)
Если можно приведи пример, пожалуйста!


 
KingMidas   (2006-11-28 17:03) [3]

+ В скобках проги к-ые могут вытащить маску


 
KingMidas   (2006-11-28 17:04) [4]

+ В скобках проги к-ые могут вытащить маску


 
Vladimir Kladov   (2006-11-28 21:09) [5]

Не знаю как в GDI+ но в моем KOLPng есть AlphaScanline. Руками, но можно вытащить. А дальше как хотите. Если через OpenGL например, то можно в качестве канала A замиксить. Через обычный GDI не знаю, c Layers не работал.


 
Alex3   (2006-11-29 12:07) [6]

>KingMidas + В скобках проги к-ые могут вытащить маску
качай с этой страницы
http://www.3a-soft.com/pgr1.php?pg=amask


 
KingMidas   (2006-12-01 13:58) [7]

Vladimir Kladov, а KOLPng разрабатывался для использования с заменой системных библиотек (SysDcu) ? Со стандартными он НЕпрозрачные файлы показывает прозрачными.
Еще обнаружил, что время от времени в одних и тех же файлах то показывает прозрачность, то нет...


 
Sapersky   (2006-12-01 17:39) [8]

Есть функция AlphaBlend, которая выводит 32-битный битмап с учётом альфа-канала. Использует premulted alpha, т.е. цвета нужно заранее умножить на альфу.
Есть AlphaPut/MMXAlphaPut из SpriteUtils.


 
Barloggg   (2006-12-04 16:21) [9]

вообще-то маски в png файлах нет.
во всяком случае их нет в таком понимании.
есть альфа-канал для каждого пикселя.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.049 c
2-1181893074
deras
2007-06-15 11:37
2007.07.08
Как перехватить закрытие дочерной формы?


5-1157026701
bvz
2006-08-31 16:18
2007.07.08
Как обращаться к произвольным свойствам компонента?


2-1181931418
nord489
2007-06-15 22:16
2007.07.08
Выделение записи в DBGrid


1-1178626631
ambhtr
2007-05-08 16:17
2007.07.08
Не получаетс разархивировать из Delphi


9-1156415887
B-on
2006-08-24 14:38
2007.07.08
текстуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский