Entwickler-Ecke

Multimedia / Grafik - DPI Auflösung einer Bitmap abfragen


delphimike - Sa 15.02.03 10:57
Titel: DPI Auflösung einer Bitmap abfragen
Wie kann ich in einem TBitmap-Objekt abfragen, in welcher dpi Auflösung eine Bitmap gespreichert ist?
Ziel ist es dies Bitmap maßstabsgetreu (strechdraw) gemäß Entwurf abzubilden, wenn das Ausgabegerät (Bildschirm oder Drucker) eine andere dpi-auflösung hat.


Andreas Pfau - Sa 15.02.03 11:17

Also, ich weiß nur, wie man PixelsPerMeter rauskriegt, aber das lässt sich ja umrechnen:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure GetPpm(Bitmap: TBitmap; out PpmX, PpmY: Integer);
var
  Inf: PBitmapInfo;
begin
  GetMem(Inf, SizeOf(TBitmapInfoHeader));
  ZeroMemory(Inf, SizeOf(TBitmapInfoHeader));
  Inf.bmiHeader.biSize := SizeOf(TBitmapInfoHeader);

  GetDiBits(Bitmap.Canvas.Handle, Bitmap.Handle, 0, 0, Nil, Inf^, Dib_Rgb_Colors);

  PpmX := Inf.bmiHeader.biXPelsPerMeter;
  PpmY := Inf.bmiHeader.biYPelsPerMeter;
end;


Ich glaube, das rechnet man so um:

Quelltext
1:
 DPI := PPM / 100 * 2,54;                    


Oder? 1 Zoll = 2,54cm?