Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Pixelgröße einer Bilddatei ermitteln (https://www.delphipraxis.net/43931-pixelgroesse-einer-bilddatei-ermitteln.html)

-NIP- 10. Apr 2005 18:28


Pixelgröße einer Bilddatei ermitteln
 
Hi!

Wie kann ich herausfinden wie die Höhe und die Breite einer Bilddatei sind ohne
Autosize vom TImage zu benutzen, weil ich das auf ein OffScreenBitmap zeichnen möchte?

Danke schon mal!
-NIP-

Airblader 10. Apr 2005 18:37

Re: Pixelgröße einer Bilddatei ermitteln
 
Du meinst nicht zufällig

Delphi-Quellcode:
Image.Picture.Bitmap.Width
Image.Picture.Bitmap.Height
:?:

air

-NIP- 10. Apr 2005 18:47

Re: Pixelgröße einer Bilddatei ermitteln
 
Nein, ich möchte die Pixelgröße von einer abgespeicherten Bilddatei haben,
um dann ein OffScreenBitmap auf diese Maße zu setzen. Dann möchte ich
die Bilddatei in dieses OffScreenBitmap laden.
Weis jemand wie das geht?

-NIP-

edit: Also ich meine, ob jemand weis wie dieses Bildgröße Ermitteln geht.

Lannes 10. Apr 2005 20:12

Re: Pixelgröße einer Bilddatei ermitteln
 
Hallo,

mit dem Code geht es:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fileheader: TBitmapfileheader;
  infoheader: TBitmapinfoheader;
  s: TFilestream;
  aFile : String;
begin
  aFile := 'C:\Benutzer\Orchidee.bmp';
  s := TFileStream.Create(aFile, fmOpenRead);
  try
    s.Read(fileheader, SizeOf(fileheader));
    //Nach dem filehaeder beginnt der infoheader
    s.Read(infoheader, SizeOf(infoheader));

    Form1.Label1.Caption := 'Width:      '
                            + FormatFloat('#,##0'
                            ,StrToFloat(IntToStr(infoheader.biWidth)));
    if infoheader.biHeight >=0 then
      Form1.Label2.Caption := 'Height:     '
                              + FormatFloat('#,##0'
                              ,StrToFloat(IntToStr(infoheader.biHeight)))
      else
        Form1.Label2.Caption := 'Height:     '
                                + FormatFloat('#,##0'
                                ,StrToFloat(IntToStr(infoheader.biHeight)))
                                +' (Top-down-DIB)';

  finally
    s.Free;
  end;
end;
Am besten erstellste Du dafür eine Function.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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