Autor Beitrag
delphimike
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 117



BeitragVerfasst: Sa 15.02.03 10:57 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Sa 15.02.03 11:17 
Also, ich weiß nur, wie man PixelsPerMeter rauskriegt, aber das lässt sich ja umrechnen:
ausblenden 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:
ausblenden Quelltext
1:
 DPI := PPM / 100 * 2,54;					


Oder? 1 Zoll = 2,54cm?