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

Вниз

Работа с PNG   Найти похожие ветки 

 
Klim   (2007-12-10 16:23) [0]

Хочу сделать графический интерфейс у программы, используя png файлы с прозрачностью. Для работы с png юзаю PNGImage(pngdelphi.sourceforge.net/)
Возникло несколько вопросов по работе с png:
1) Как "раскрасить" картинку в другой цвет(вот в этом примере реализовано bmp http://www.delphisources.ru/files/sources/graph/2007_year/personal_design.zip)
2) На событии MouseMove, как понять находится курсор над прозрачной областью или нет(в bmp можно заюзать Image1.Picture.Bitmap.Canvas.Pixels и сравнить его с прозрачным цветом)
Спасибо за ответы.


 
homm ©   (2007-12-10 16:26) [1]

> [0] Klim   (10.12.07 16:23)
> На событии MouseMove, как понять находится курсор над прозрачной
> областью или нет

Получить значение байта «прозрачности» из исходного изображения.


> [0] Klim   (10.12.07 16:23)
> Как "раскрасить" картинку в другой цвет(вот в этом примере
> реализовано bmp

Там же исходники есть. Осталось только включить мыслительный процесс, и то врятли понадобится.


 
Klim   (2007-12-10 16:40) [2]


> Получить значение байта «прозрачности» из исходного изображения.

подскажи плиз каким образом??
По идее у обьекта TPNGObject должно быть свойство Pixels[x,y] который и должен вернуть цвет
Допустим есть Image1 в котором и находится искомый png. Как мне дойти до этого свойства??
Если я завожу отдельную переменную типа TPNGObject, то все ок, а тут как быть... ?


 
homm ©   (2007-12-10 16:42) [3]

> [2] Klim   (10.12.07 16:40)
> По идее у обьекта TPNGObject должно быть свойство Pixels[x,y] который и должен вернуть цвет

Странная идея. Почему именно Pixels? Ищи аналог. А о Pixels вообще забудт как страшный сон, ибо медленный до жути. Почитай но ScanLine


 
antonn ©   (2007-12-10 17:48) [4]

у ПНГИмаге есть ScanLine и alphaScanLine для маски.



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
2-1247578710
Zheksonz
2009-07-14 17:38
2009.09.20
WriteBuffer - error - Access violation at addr... почему???


15-1247764231
Polkin
2009-07-16 21:10
2009.09.20
Что-то с svchost.exe


2-1248162543
lewka
2009-07-21 11:49
2009.09.20
нажатие на ссылку в TWebbrowser


15-1248033359
Юрий Зотов
2009-07-19 23:55
2009.09.20
Сам дурак, или как?


4-1217761801
kalexi
2008-08-03 15:10
2009.09.20
Как рисовать в статике используя двойную буферизацию?