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
@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 stylu:

image.convertToFormat(QImage.Format_Indexed8)
Niestety rezultat nie jest do końca dobry.

@JoeBlade: loader/writer dla obrazków są już zawarte w Qt, pisanie własnych uznałem za wynajdowanie koła na nowo.
Zależy mi na możliwie czystym
@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ń.
@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.