procedure TForm1.Button1Click(Sender: TObject);
var
ms : TMemoryStream;
jpeg1 : TJPEGImage;
begin
//将数据库字段的内容读取到流中
ms := TMemoryStream.Create;
TBlobField(qrM.FieldByName('IMAGE')).SaveToStream(ms);
//从流中加载图片
jpeg1 := TJPEGImage.Create;
ms.Position := 0;
jpeg1.LoadFromStream(ms);
FreeAndNil(ms);
//将图片赋给控件(控件会自动显示)
Image1.Picture.Assign(jpeg1);
FreeAndNil(jpeg1);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
bmp: TBitmap;
jpeg1 : TJPEGImage;
ms : TMemoryStream;
begin
if OpenPictureDialog1.Execute then
begin
//从文件加载图片
jpeg1 := TJPEGImage.Create;
jpeg1.LoadFromFile(OpenPictureDialog1.FileName);
//将图片缩放
bmp := TBitmap.Create;
bmp.Width := jpeg1.Width div 2;
bmp.Height := jpeg1.Height div 2;
bmp.Canvas.StretchDraw(Rect(0, 0, bmp.Width, bmp.Height), jpeg1);
//将绽放后的图片替换原图片
jpeg1.Assign(bmp);
FreeAndNil(bmp);
//将图片存入流中
ms := TMemoryStream.Create;
jpeg1.SaveToStream(ms);
FreeAndNil(jpeg1);
//将流存入数据库字段中
qrM.Edit;
ms.Position := 0;
qrMIMAGE.LoadFromStream(ms);
qrM.Post;
FreeAndNil(ms);
end;
end;
需要注意的时,在对流进行操作时,要将它的Position设置为0