Wpis z mikrobloga

Witam.

Stoję przed teoretycznie prostym zadaniem pisząc w PyQt, o które rozbijam się już drugi dzień.
Chcę otworzyć 8 bitowym plik bmp (FormatIndexed8 ?),
nałożyć na niego tekst i zapisać bez zmiany parametrów (8 bit color depth i zachowane wartości kolorów).
Doki niestety mówią że:

Note: Drawing into a QImage with QImage::Format
Indexed8 is not supported.

Działam z QImage i flagami z dokumentacji,
jednak czego bym nie robił (zamiana na pixmap/convert na inny format QImage) kończę albo z:
4 bitowym obrazkiem / "szumem" na 8 bitowym obrazku / brakiem "szumu" ale zmienionym odcieniem kolorów

Mogę prosić o wskazówki? Mogą być w #cpp , łatwo się to przepisuje a i język zacny.

BTW Czy tylko mi się wydaje czy też PyQt stoi bardzo słabo z jakąkolwiek społecznością?
Dokumentacja też dość biedna :(

#python #qt #pyqt #programowanie
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@qbek: zmarnowałeś pewnie mnóstwo czasu na zadanie pytania na wykopie a tak już byś sobie napisał połowę loadera\writera formatu bmp, który jest najprostszym z możliwych formatów graficznych do modyfikacji z poziomu kodu.

Polecam zapoznanie się z budową pliku: http://www.fileformat.info/format/bmp/egff.htm

Dokładniejszy opis i przykładowy kod odczytu i zapisu znajdziesz na MSDN
  • Odpowiedz
@GwnBrz:

Wczytuję obrazek 8 bitowy, po czym muszę go konwertować na coś co ma więcej kolorów (bo nie mogę "pisać" bo 8 bitowym via cytat z dokumentacji),
następnie chciałem go zrzucić na powrót do poprzedniego formatu używając czegoś w
  • Odpowiedz
@qbek: Ale wiesz, ten format jest 8-bitowy i pozwala na użycie tylko 256 kolorów, wiec jeżeli używasz większej liczby to przy zapisie powstają jakieś zmiany.
  • Odpowiedz
@GwnBrz: Input file to 8 bitowy bmp (użyte 6 kolorów),
rysuję na nim napis (wykorzystując jeden z kolorów z tego pliku),
output także ma być 8 bitowym bmp (te same kolory).
Podejrzewam, że przy konwertowaniu dochodzi do zniekształceń.
  • Odpowiedz
@GwnBrz: Na początku kopiuję color table z oryginalnego obrazka i ustawiam je na wynikowym obrazku po konwersji na 8 bitowa bitmapę (przed samym zapisem), niestety wynikowy obrazek ma inne kolory niż powinien.

Eh, za działające rozwiązanie problemu stawiam oczywiście pizzę tudzież innego czteropaka, więc gdyby ktoś coś, to bardzo proszę tu lub w wiadomości prywatnej.
  • Odpowiedz