Opret en BITMAPINFO fra en JPG/PNG-fil i Windows C ++

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en funktion i en API Jeg bruger denne anmodning til en BITMAPINFO-peger. Jeg formoder at give denne funktion et billede. Mine billeder er JPG/PNG'er. Antag at jeg omdanner dem til BMP-filer, jeg har stadig ingen anelse om, hvordan man opretter denne struktur. Er der en Windows API, som jeg kan bruge til det?

Bedste reference


Du kan bruge GDI + til dette.

Læs BMP/JPG/PNG/GIF ved hjælp af Gdiplus :: Bitmap :: FraFile for at indlæse og Gdiplus :: Bitmap :: GetHBITMAP for at få adgang til HBITMAP og derefter BITMAPINFO [1] [2]

Andre referencer 1


En hurtig google viser denne MSDN-artikel: Størrelsen af ​​et JPEG- eller PNG-billede, som viser en måde at udfylde en BITMAPINFO på for en JPEG-fil (ville fungere for PNG). [3]


Brug linkene til venstre for denne side for at få flere oplysninger om bitmap API.

Andre referencer 2


PNG'er har muligvis AlphaChannel/gennemsigtighedsinformation - som går tabt, når der konverteres til en bitmap. Hvad gør din funktion, der kræver BITMAPINFO, faktisk?


Hvis din tilgang er at omdanne filerne til bitmaps; gør det ikke på kørselstidspunktet.
Konverter filerne ved hjælp af et maleprogram til bmp.


Som tidligere nævnt kan du bruge GDI + til at gøre brug af flere forskellige native formater;
men det vil sandsynligvis kræve at konvertere dine eksisterende GDI-opkald til GDI +.