Witam
Czy jest możliwość wczytania z zasobów innego pliku niż .bmp, np: .png ? Do wczytania obrazu z zasobu używam funckji "LoadImageA" a do wyświetlenia "BitBlt", próbuje różnymi metodami w ten sam sposób załadować plik .png i się nie udaje.
Win API jest mocno prymitywne, i nie ma takich "nowoczesnych" rzeczy jak PNG
A w ogóle skąd ci przyszedł do głowy w tym stukać coś większego? To jest aby się zapoznać, żeby rozumieć co jest pod spodem, ale pisac w czymś innym.
Mamy 2022 rok, a nie 1993.
PNG z zasobów możesz wczytać za pomocą GDI+. Znajdziesz gotowce przez google, GDI+ jest częścią każdego współczesnego windows'a. Jeśli nie chcesz GDI+ to PNG możesz wczytać za pomocą stb image a potem zawołać CreateBitmap
do stworzenia HBITMAP
.
Z zasobów można wczytać dowolne dane binarne, więc tak, można wczytać PNG.
Pytanie czym zdekodować to PNG do nieskompresowanej bitmapy w systemie.
Można na kilka sposobów, ja bym wykorzystał WIC (Windows Imaging Component) który jest częścią Windowsa i służy właśnie do dekodowania i kodowania obrazów w różnych formatach.
Przykład ładowania obrazka z zasobów:
https://docs.microsoft.com/en-us/windows/win32/wic/-wic-decoder-howto-createusingstream
A jakby Cię z jakiegoś powodu naszło pisać WIC-a samemu: https://docs.microsoft.com/en-us/windows/win32/wic/-wic-howtowriteacodec