Konwersja DDS do BMP

0

Chciał bym przekontrastować obraz z formatu dds do bmp posiadając obraz w tablicy bajtowej, tu przykład jednego obrazka:

byte[] picture = new byte[] { 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x10, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x44, 0x58, 0x54, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xB6, 0xC1, 0x28, 0xF5, 0x69, 0xE1, 0xED, 0x9E, 0xEF, 0x42, 0x31, 0x55, 0xFD, 0x03, 0x02, 0x3E, 0xDF, 0x41, 0x39, 0x55, 0x7F, 0xF8, 0xE0, 0x56, 0xA5, 0x01, 0x31, 0x5B, 0x61, 0x73, 0x5A, 0xDA, 0xC6, 0xC1, 0x28, 0xB5, 0x35, 0xFD, 0x8D, 0x3B, 0xDF, 0x64, 0x31, 0x08, 0x2A, 0xF5, 0x57, 0x17, 0xC6, 0x24, 0x21, 0xE0, 0x88, 0x7B, 0xD6, 0x13, 0x6C, 0xE2, 0x28, 0x55, 0x5C, 0xD5, 0x5F, 0x44, 0xB1, 0x40, 0x00, 0x3D, 0xC9, 0x89, 0xD7, 0xB9, 0xCE, 0xC3, 0x20, 0x2A, 0x0D, 0x09, 0xBD, 0x1C, 0xD7, 0x85, 0x31, 0x5E, 0x5F, 0x70, 0x5B, 0x00, 0x78, 0xC1, 0x20, 0x55, 0x41, 0x69, 0x55 };

znalazłem tylko jedno rozwiązanie polegające na zapisaniu tej tablicy do pliku i przekonwertowanie za pomocą texconv.exe z parametrami -ft BMP ale to wymaga zapisu do dwóch plików ponieważ najpierw ten w formacie dss a potem texconv zapisuje drugi już bmp, a mi zależy na tym aby wszystko działo sie w aplikacji, widzicie jakieś wyjście?

0

wiem czytałem o tym i pewnie jeśli nie znajdę innego rozwiązania zastosuje ta bibliotekę ale wolał bym nie dotłaczać żadnych zewnętrznych bibliotek prócz tych windowsowkich a ze z c++ nie idzie mi najlepiej nie przerobie tych funkcji na podstawie svn :/

1

Musiałem sprawdzić i Google twierdzi że Dds to format graficzny używany przez DirectX do skompresowanych tekstur.

Wywołanie tego texConv byłoby najprostsze...

Można też znaleźć jakieś informacje o formacie na http://msdn.microsoft.com/en-us/library/bb943992%28v=VS.85%29.aspx i zaimplementować konwersję samemu. Nie będzie to proste i przyjemne, ale działające na pewno (btw twój plik nie wygląda na posiadający prawidłowy nagłówek).

0

przejrzałem to i zdecydowanie zbyt wiele roboty było by z tworzeniem własnego konwertera, jak na mój program, zastosuje texconv i po zapisaniu przez niego bmp będę wczytywał go do aplikacji i od razu kasował.

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