Problem mit dem Handle von images bei 32 Bit images

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
dige
Beiträge: 1245
Registriert: 08.09.2004 08:53

Beitrag von dige »

Hier für alle die Erklärung aus dem englischen Forum:

Beim erstellen eines PB-Images mit #PB_Image_DisplayFormat, wird wohl
ein Geräteabhängiges Bild erstellt und hat somit eine bessere Performance.

Wenn man auf die Pixel zugreifen will, muss man sich zunächst freien Speicher
allokieren und mit GetDIBits_() übertragen. Die DDB wird dabei in eine DIB umgewandelt. D.h. Bits holen, bearbeiten und wieder zurückschreiben.
Das ganze hat auch den Vorteil das man sich auf eine Farbtiefe festlegen kann und braucht nicht Routinen für 32, 24, 16, 8 Bit etc. zu schreiben..
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Dostej
Beiträge: 529
Registriert: 01.10.2004 10:02
Kontaktdaten:

Beitrag von Dostej »

@alter mann
Ja, mit 32 bit "direkt" gehts, aber nicht mir dem Displayformat, wie dige sagte.

@dige
Thx. das wäre aber noch gut wenn das irgendwo in der Doc erwähnt werden könnte.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Problem mit dem Handle von images bei 32 Bit images

Beitrag von Fluid Byte »

Fluid Byte hat geschrieben:
If 'Depth' is omitted or set to #PB_Image_DisplayFormat, the image format is taken from the desktop format. Valid 'Depth' values can be: 1, 2, 4, 8, 16, 24 and 32 bits. When manipulating true colors formats, and want save back the modifications without color information loss, it's advised to use the 24 or 32 bits values. If the images are only used for displaying on the screen, #PB_Image_DisplayFormat will provide faster performances.
Du musst die Bittiefe explizit angeben damit es für 32-Bit funktioniert.
Hört hier eigentlich keiner zu? :roll:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
dige
Beiträge: 1245
Registriert: 08.09.2004 08:53

Beitrag von dige »

Nö, ich höre gerade ContinentalTrainWreck.. :D
Aber um auf Deine Anspielung zurückzukommen, ich konnte Deinem Post
nix entnehmen, warum es mit der Angabe der BitTiefe funktioniert und
mit #PB_Image_DisplayFormat nicht..
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

dige hat geschrieben:Nö, ich höre gerade ContinentalTrainWreck.. :D
http://www.myspace.com/continentaltrainwreck ?

Die klingen irgendwie so als würden sie sich gleich die Pulsadern aufschlitzen ...
dige hat geschrieben:Aber um auf Deine Anspielung zurückzukommen, ich konnte Deinem Post nix entnehmen, warum es mit der Angabe der BitTiefe funktioniert und mit #PB_Image_DisplayFormat nicht..
Steht doch da ... :freak:

Gibst du die Bittiefe nicht an bzw. setzt das #PB_Image_DisplayFormat Flag wird ein anderes Bitmapformat benutzt. Das eine geräteabhängig das andere nicht. Somit können sie beide 32-Bit benutzen sind aber anderes aufgebaut. Ob das eine nun DIB oder das andere DDB ist spielt dabei keine Rolle denn die Hilfe weist drauf hin das ein unterschiedliches Format benutzt wird.

Außerdem funktioniert der Code doch wenn man eine Bittiefe auf 32-Bit setzt. Wo is' dat' Problem?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Antworten