Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как правильно отобразить картинку с полупрозрачными пикселями?   Найти похожие ветки 

 
Jimmy   (2012-04-05 17:42) [0]

То есть непрозрачные пикселы должны отображаться "как есть", а полупрозрачные сливаться с фоном при выводе на форму или Image. Причем проблема уже на стадии создания рисунка. Photoshop CS позволяет создавать 32-битные bmp, но почему то при этом при сохранении файла теряется прозрачность. Создавая там же 32-битные png прозрачность сохраняется, но PNGZLib, которой я пользуюсь на Delphi7 преобразовывает его, кажется, в 24-битный при открытии. Прошу помощи, вопрос вроде избитый, но второй день поиска ответа ни к чему не привели. Заранее спасибо!


 
KilkennyCat ©   (2012-04-05 18:49) [1]


> 32-битные bmp, но почему то при этом при сохранении файла
> теряется прозрачность.

bmp не предполагает наличие полупрозрачности.
png предполагает 24 и 48 бит, не 32


 
KilkennyCat ©   (2012-04-05 18:52) [2]

причем 24 бита не предполагают альфа-канал.


 
Jimmy   (2012-04-05 18:54) [3]

Так как же быть?


 
CRLF   (2012-04-05 18:56) [4]

А как же альфа-канал в PNG?


 
KilkennyCat ©   (2012-04-05 18:58) [5]


> png предполагает 24 и 48 бит, не 32

опс, это я ступил при умножении. 24 и 48 - это дя RGB. RGBA - 32 и 64 бита.


 
KilkennyCat ©   (2012-04-05 19:11) [6]


> Jimmy   (05.04.12 18:54) [3]
>
> Так как же быть?

TPNGImage


 
Jimmy   (2012-04-05 19:14) [7]

Повторюсь: использую PNGZLib, открывая 32-битный png-файл его свойство PixelFormat принимает значение pf24bit. Как быть?


 
Jimmy   (2012-04-05 19:20) [8]

Соответственно после:

P:TPNGImage;
p.LoadFromFile("C:\1.png");
Form1.Canvas.Draw(0,0,p);

никакого сглаживания в областях полупрозрачности не происходит.


 
Jimmy   (2012-04-05 20:06) [9]

Кажется получилось! Сменил PNGZLib на PNGImage и все заработало, без всяких AlphaBlend, просто Form1.Canvas.Draw(x,y,p), где p:TPNGObject!


 
KilkennyCat ©   (2012-04-05 22:52) [10]

ну дык. не зря именно он вошел в поставку rad studio


 
Дмитрий С ©   (2012-04-06 10:02) [11]

Чтобы фотошоп сохранил альфу в BMP нужно этот альфа канал отдельным каналом добавить, тогда флажек RGBA в фотошопе станет активным. Ну и отображать с помощью AlphaBlend



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.077 c
4-1259844425
Павел
2009-12-03 15:47
2013.03.22
как получить выделенный текст из активного окна?


15-1335040202
Юрий
2012-04-22 00:30
2013.03.22
С днем рождения ! 22 апреля 2012 воскресенье


2-1330521256
Мальчик
2012-02-29 17:14
2013.03.22
Delphi - ADO - DBF (Ошибка синтаксиса)


15-1337666878
mefodiy
2012-05-22 10:07
2013.03.22
Копирование файлов в batch файлах


15-1350908665
Grimm375
2012-10-22 16:24
2013.03.22
перевести на английский





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский