Seite 2 von 2
Verfasst: 30.04.2009 09:07
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..
Verfasst: 30.04.2009 10:23
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.
Re: Problem mit dem Handle von images bei 32 Bit images
Verfasst: 30.04.2009 14:56
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?

Verfasst: 30.04.2009 15:59
von dige
Nö, ich höre gerade ContinentalTrainWreck..
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..
Verfasst: 30.04.2009 20:12
von Fluid Byte
dige hat geschrieben:Nö, ich höre gerade ContinentalTrainWreck..
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 ...
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?