Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Herausfinden ob eine JPG oder eine BMP-Datei in TImage liegt (https://www.delphipraxis.net/74447-herausfinden-ob-eine-jpg-oder-eine-bmp-datei-timage-liegt.html)

mlspider 3. Aug 2006 13:28


Herausfinden ob eine JPG oder eine BMP-Datei in TImage liegt
 
Wie der Titel schon mitteilt, möchte ich in einem Label anzeigen lassen, ob es sich bei der in einem Timage geladene Datei, um eine BMP-Datei oder um eine JPG-Datei handelt.

Übrigens wäre auch die Farbtiefe sehr interessant.

Neutral General 3. Aug 2006 13:45

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Die Farbtiefe kannst du glaube ich mit TPicture.Bitmap.Pixelformat herausfinden...

Delphi-Quellcode:
TPixelFormat = (pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom);
PS: Falls das das richtige ist ... hab nicht soo viel Ahnung da..

Gruß
Neutral General

Khabarakh 3. Aug 2006 13:49

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Bei JPEGs ist Picture.Graphic ein TJPEGImage.

mlspider 3. Aug 2006 13:51

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Und wie kann ich mir die Extension im Label anzeigen lassen?

Khabarakh 3. Aug 2006 13:56

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Kannst du die Extension nicht beim Laden des Bildes speichern? Denn wenn du weißt, dass Graphic ein TJPEGImage ist, kannst du immer noch nicht zwischen .jpg und .jpeg unterscheiden.

Neutral General 3. Aug 2006 13:57

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Delphi-Quellcode:
function GetPictureFormat(Pic: TPicture): String;
begin
 Result := Pic.Graphic.ClassName;
end;
Das ist schonmal was :)

Wenn du den Dateinamen hast dann kannst du auch einfach

Delphi-Quellcode:
ExtractFileExt(Dateiname)
benutzen !

Ansonsten kannst du die Funktion oben abändern:

Delphi-Quellcode:
function GetPictureFormat(Pic: TPicture): String;
begin
 if Pic.Graphic.Classname = 'TBitmap' then Result := '.bmp'
 else
 if Pic.Graphic.Classname = 'TJPEGImage' then Result := '.jpeg'
 else Result := 'Unknown format!';
end;
Gruß
Neutral General

mlspider 3. Aug 2006 14:04

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Ja klar. Auf ExtractFileExt bin ich einfach nicht gekommen. Danke.

Hawkeye219 3. Aug 2006 14:21

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Eine Möglichkeit wäre noch, die Funktion Delphi-Referenz durchsuchenGraphicExtension aus der Unit Graphics zu benutzen:

Delphi-Quellcode:
function GetPictureExtension (aImage: TPicture): string;
begin
  with aImage do
    if Assigned(Graphic) then
      Result := GraphicExtension(TGraphicClass(Graphic.ClassType))
    else
      Result := '(empty)';
end;
Das von Khabarakh angesprochene Problem (Unterscheidung '.jpg' und '.jpeg') läßt sich damit allerdings nicht lösen.

Gruß Hawkeye

mlspider 3. Aug 2006 14:33

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Gäbe es denn eine weitere Möglichkeit von JPG und JPEG zu unterscheiden?

Neutral General 3. Aug 2006 14:35

Re: Herausfinden ob eine JPG oder eine BMP-Datei in TImage l
 
Mit ExtractFileExt geht das doch super.. Wenn die Dateiendung .jpeg ist dann bekommst du '.jpeg' zurück.. wenns .jpg ist dann '.jpeg'


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr.
Seite 1 von 2  1 2      

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