Главная страница
    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.48 MB
Время: 0.041 c
15-1201854959
clickmaker
2008-02-01 11:35
2008.03.09
Вызов почтового клиента из .NET


15-1202094345
Slider007
2008-02-04 06:05
2008.03.09
С днем рождения ! 4 февраля 2008 понедельник


11-1184849522
max727
2007-07-19 16:52
2008.03.09
TCP в вопросах и ответах


11-1183368735
Delphuk
2007-07-02 13:32
2008.03.09
Ошибка после нескольких вызывов MCK формы из DLL


15-1201900320
ProgRAMmer Dimonych
2008-02-02 00:12
2008.03.09
Подскажите, плз, направление поиска





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