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

Вниз

Самый "дешевый" способ загрузить картинку PNG?   Найти похожие ветки 

 
Dmitry S ©   (2008-02-04 12:15) [0]

Вобщем нужен аналог функции:
 Bmp := LoadImage(
           HInstance,
           "src.bmp",
           IMAGE_BITMAP,
           0,
           0,
           LR_CREATEDIBSECTION
             or LR_DEFAULTSIZE
             or LR_LOADFROMFILE
           );

только для png.
Иначе говоря на выходе нужно иметь 32х битный HBITMAP.


 
clickmaker ©   (2008-02-04 12:19) [1]

через GDI+
либо ищи компонент, GraphicsEx, к примеру


 
Ins ©   (2008-02-04 12:22) [2]

http://www.thany.org/download/14/pngcomponentssetup.zip


 
Dmitry S ©   (2008-02-04 12:24) [3]

Мне не нужны компоненты, мне нужен простой способ. Я делаю приложение на WinApi:) А BMP с альфа каналом много весят и много мороки, чтобы их создать.


 
Zeqfreed ©   (2008-02-04 12:25) [4]

libpng?


 
clickmaker ©   (2008-02-04 12:27) [5]

http://rsdn.ru/article/qna/gdi/drawimg.xml


 
rts111 ©   (2008-02-04 12:34) [6]

http://pngdelphi.sourceforge.net


 
Dmitry S ©   (2008-02-04 13:04) [7]

Все не то. Или VCL или DLL (160 КБ) с собой таскать.

Вот тут пример есть
http://chime.student.utwente.nl/qweerdy/ppa.zip
на асме.
Exe файл весит 72 КБ, из которых 62 - ресурс.
Найти бы этот самый
  include pnglib.inc
  includelib pnglib.lib
для дельфи.


 
хам   (2008-02-04 13:18) [8]

Мой распаковщик для PNG весит 20кб, в сжатом upx виде 9кб. Проходит валидацию на w3.org, тока альфу игнорит, выдавая результат 24 бита для лубого файла.


 
Dmitry S ©   (2008-02-04 13:21) [9]

борьба как раз за альфу:)


 
хам   (2008-02-04 13:29) [10]

> [9] Dmitry S ©   (04.02.08 13:21)
> борьба как раз за альфу:)

В принципе, если есть желание, можно и подправить, формат то он верно узнает.


 
ketmar ©   (2008-02-04 13:56) [11]

>[7] Dmitry S ©(04.02.08 13:04)
ну вырежь из zlib распаковщик да напиши сам. %-)


 
rts111 ©   (2008-02-04 14:50) [12]


> rts111 ©   (04.02.08 12:34) [6]
> http://pngdelphi.sourceforge.net


А что, на том сайте не нашел?
Я точно не помню, но кажись оттуда качал.
Без компонентов, и компактно, у меня пашет.
Я правда ручками немного правил, но там все просто вроде бы.
Могу на мыло скинуть?


 
Sapersky   (2008-02-04 15:19) [13]

KOLPng, если использовать только загрузку, добавляет около 30 кб (последние версии, может быть, немного больше). Альфа есть, хотя сделана не очень удобно - грузится в отдельную область памяти, т.е. конвертацию в 32-битный битмап нужно дописывать самостоятельно.


 
Черный Шаман   (2008-02-04 16:02) [14]


>
> Dmitry S ©   (04.02.08 12:15)
>
> Вобщем нужен аналог функции:
>  Bmp := LoadImage(
>            HInstance,
>            "src.bmp",
>            IMAGE_BITMAP,
>            0,
>            0,
>            LR_CREATEDIBSECTION
>              or LR_DEFAULTSIZE
>              or LR_LOADFROMFILE
>            );
> только для png.
> Иначе говоря на выходе нужно иметь 32х битный HBITMAP.


Вот тебе описание формата png
http://www.w3.org/TR/PNG/

Загружаешь в память, разбираешь формат и перегоняешь массив пикселов в Hbitmap через DIB функции.



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

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

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1202882049
Shousheng
2008-02-13 08:54
2008.03.09
memo прозрачное выделение


3-1192802734
Vendict
2007-10-19 18:05
2008.03.09
создание DNS для Oracle


2-1202659909
Петр
2008-02-10 19:11
2008.03.09
idhttp и ссылка без страницы


2-1202739868
patrick1968
2008-02-11 17:24
2008.03.09
Проблема с написанием Service а


15-1201789120
Oleg_teacher
2008-01-31 17:18
2008.03.09
InnoSetup





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