Gute Frage.
TBitmap.SetHandleType sieht jedenfalls nicht danach aus, als wenn dort die Pixelgröße verändert wird ... sieh ehern so aus, als wenn die eigentlich so bleiben müßte, wie sie ist.
Problem ist halt, daß du beim DDB eben nie das Format rausbekommst, jedenfalls nicht über das PixelFormat.
Delphi-Quellcode:
function TBitmap.GetPixelFormat: TPixelFormat;
begin
Result := pfCustom;
if HandleType = bmDDB then
Result := pfDevice
else
Bitmaps kennen auch noch viele andere Farbkodierungen, als nur die paar aus TPixelFormat.
Also nur über dieses TPixelFormat kannst du eh nicht alles rausbekommen.
Du könntest nachsehn, ob du über die
WinAPI an mehr Infos rankommst.
http://msdn.microsoft.com/en-us/library/dd183561.aspx
http://www.codeguru.com/cpp/g-m/bitm...DDB-to-DIB.htm
Oder such mal im
MSDN und in den Delphi-Codes nach bmBitsPixel und bmPlanes. (Bits = bmPlanes * bmBitsPixel)
bmPlanes = Anzahl der Farbkanäle
bmBitsPixel = Anzahl der Pixel pro Kanal