先贴上一段代码
procedure TForm1.Button2Click(Sender: TObject); //读取图片过程
var
Stream:TMemoryStream;
Jpg:TjpegImage;
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:=‘SELECT * FROM tbltemp’; // 查询图片
ADOQuery1.Open;
if not ADOQuery1.FieldByName(‘Image’).IsNull then
begin
Stream:=TMemoryStream.Create ;
Jpg:=TjpegImage.Create ;
TBlobField(ADOQuery1.FieldByName(‘Image’)).SaveToStream(Stream); // 显示的转换为BlobField并保存到内存流
Stream.Position :=0;
jpg.LoadFromStream(Stream); // 加载图片
image2.Picture.Assign(Jpg);
end
else
begin
image2.Picture :=nil;
end;
end;
以上代码在D11 中运行没通过,报JPEG error #42错误。查了许多资料,没找到原因。而且jpeg还得加载vcl.image.jpeg这个组件。
以下代码是在D11中通过的,且对图片格式没有挑选。
procedure TForm1.BitBtn2Click(Sender: TObject);
var strstream:TStream;
jpg:TPicture;
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(‘select