Jen*_*off 8 delphi timage stream detect delphi-2007
如果我理解正确,请TImage.LoadFromFile
从文件扩展名确定图片类型.
有没有办法从TBlobStream
原始图像中自动检测图像类型?
我目前的代码:
procedure LoadImageFromStream(AImage: TImage; ADataSet: TDataSet);
var
Stream: TStream;
begin
Stream := ADataSet.CreateBlobStream(Field, bmRead);
try
AImage.Picture.Graphic.LoadFromStream(Stream);
finally
Stream.Free;
end;
end
Run Code Online (Sandbox Code Playgroud)
Arn*_*hez 16
请参阅此SO答案,从标题中检索文件内容.
或者你可以使用我们的TSynPicture
类,它将使用Gdi +库处理所有类型的图片(bmp/gif/tiff/jpg/png),在一个单独的类中.因此TPicture
,对于任何类型的图片,您都可以成为这个独特的类.代码开销少于Jpeg或PNG Delphi单元.
var Pic: TSynPicture;
Pic := TSynPicture.Create;
Pic.LoadFromStream(aStream); // will load bmp/gif/tiff/jpeg/png content
AImage.Picture.Graphic := Pic;
....
Run Code Online (Sandbox Code Playgroud)