Jede Graphic-Klasse hat eine überladene class function CanLoadFromStream, die die von Klaus in Spiel gebrachte Idee umsetzt.
Das kannst dann verwenden, um aus dem Blob-Stream zu ermitteln, welche File-Extension gebraucht wird.
Delphi-Quellcode:
uses
Vcl.Graphics,
Vcl.Imaging.pngimage,
Vcl.Imaging.jpeg,
Vcl.Imaging.GIFImg;
function GetImageFileExtensionFromBlobStream(
const ABlobStream: TStream):
string;
begin
if TBitmap.CanLoadFromStream(ABlobStream)
then
begin
Result := '
bmp';
end
else if TPngImage.CanLoadFromStream(ABlobStream)
then
begin
Result := '
png';
end
else if TJPEGImage.CanLoadFromStream(ABlobStream)
then
begin
Result := '
jpg';
end
else if TGIFImage.CanLoadFromStream(ABlobStream)
then
begin
Result := '
gif';
end
else
Result := '
unknown';
end;