C++ WinApi - wczytywanie plików innych niż .bmp z zasobów

0

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.

1

@plugan300:

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.

4

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.

5

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

4

A jakby Cię z jakiegoś powodu naszło pisać WIC-a samemu: https://docs.microsoft.com/en-us/windows/win32/wic/-wic-howtowriteacodec

1 użytkowników online, w tym zalogowanych: 0, gości: 1