Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Auflösung eines Bitmaps ermitteln (https://www.delphipraxis.net/127109-aufloesung-eines-bitmaps-ermitteln.html)

Tazidus 7. Jan 2009 22:44


Auflösung eines Bitmaps ermitteln
 
Hallo,

ich möchte gerne innerhalb eines RaveReports, welcher mit "CodeBasePrinting" (also per "Hand") erstellt wurde, ein Bitmap einstellen/einbinden.

Um dieses nun Millimeter-Genau zu positionieren, müsste ich die Größe in Millimetern wissen.

Ich finde aber nur Functionen mit denen ich die Höhe und die Breite in Pixel bekomme.

Wäre kein Problem, da man ja wie folgt rechnen kann: Pixel * 25.4 / 600 dpi = Größe in MM

Außer mir kennt keiner die Auflösung des Bitmaps. Wenn nun der User ein Bitmap mit einer anderen Auflösung verwendet, wird das Bitmap entweder zu klein oder zu groß ausgegeben.

Daher wollte ich innerhalb des Programms die Größe berechnen. Hierzu ist aber die Auflösung von nöten. Diese habe ich bisher noch nicht gefunden.

Wer kann mir helfen?

Danke schon mal im voraus.

Gruß
Daniel

Cyf 8. Jan 2009 04:43

Re: Auflösung eines Bitmaps ermitteln
 
Irgendwie klingt das, als könnte man auch einfach Stretch eines Images auf true setzen und die Bitmap zuweißen. Oder reicht das für deine Zwecke nicht aus?

Klaus01 8. Jan 2009 07:43

Re: Auflösung eines Bitmaps ermitteln
 
Guten Morgen,

wenn Du das Bild in eine Image Komponente lädtst dann
kannst Du die Pixelausdehnung des Bitmaps abfragen.
Image.Picture.Width und Image.Picture.Heigth

Oder Du suchst Dir die Daten aus den Daten des BMP Files heraus.
Das BMP Format ist hier beschrieben.

Grüße
Klaus

RaSoWa1 8. Jan 2009 08:08

Re: Auflösung eines Bitmaps ermitteln
 
Guten Morgen

Zitat:

Um dieses nun Millimeter-Genau zu positionieren, müsste ich die Größe in Millimetern wissen.

Ich finde aber nur Functionen mit denen ich die Höhe und die Breite in Pixel bekomme.

Wäre kein Problem, da man ja wie folgt rechnen kann: Pixel * 25.4 / 600 dpi = Größe in MM
Um ein Bild millimetergenau zu Positionieren mußt du mit der dpi-Zahle des Ausgabegerätes (Drucker, Bildschirm) rechnen.

z.B:
Delphi-Quellcode:
function GetPrinterDpiX: integer;
begin
  // HorzPixelsPerInch:
  result := GetDeviceCaps(Printer.Handle, LogPixelsX);
end;
function GetPrinterDpiY: integer;
begin
  //VertPixelsPerInch:
   result := GetDeviceCaps(Printer.Handle, LogPixelsY);
end;

Gruß Klaus.

DeddyH 8. Jan 2009 10:17

Re: Auflösung eines Bitmaps ermitteln
 
Was spricht denn gegen MSDN-Library durchsuchenSetMapMode?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz