📄 save jpeg into database and read from database.txt
字号:
procedure Tfrm_Pic_Adm.btn_Load_Picture01Click(Sender: TObject);
var
pics:TStream;
Jpeg:TJpegImage;
bmp:TBitMap;
begin
// uses JPEG;
if not OpenPictureDialog1.Execute() then exit;
ibQry_Pic_Code.Edit;
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
pics:=TMemoryStream.Create;
bmp:=TBitMap.Create;
bmp.Width:=Image1.Picture.Width;//指定长度与宽度
bmp.Height:=Image1.Picture.Height;
bmp.Canvas.Draw(0,0,Image1.Picture.Graphic);
//注意此句,这是与其它方法不同的地方,之所以能实现存储所有操作系统能识别的图片格式,原因就在此处:采用了截图方式。
Jpeg:=TjpegImage.Create;
Jpeg.CompressionQuality:=80;
jpeg.Assign(bmp);
jpeg.Compress;//压缩为JPEG格式
jpeg.SaveToStream(pics);//存入内存流
pics.Position:=0;
TBlobField(ibQry_Pic_Code.FieldByName('PIC_BLOB')).LoadFromStream(pics);//数据库从流中接受数据
//ibQry_Pic_Code.Post;//不自动保存
pics.Free;
jpeg.Free;
bmp.Free;
end;
procedure Tfrm_Pic_Adm.ibQry_Pic_CodeAfterScroll(DataSet: TDataSet);
var
pics:TStream;
Jpeg:TJpegImage;
begin
//读取图片
if TBlobField(ibQry_Pic_Code.FieldByName('PIC_BLOB')).value='' then
begin
Image1.Picture:=nil;
exit;
end;
pics:=TMemoryStream.Create;
TBlobField(ibQry_Pic_Code.FieldByName('PIC_BLOB')).SaveToStream(pics);//将二进制存入内存流
pics.Position:=0;
Jpeg:=TJpegImage.Create;
Jpeg.LoadFromStream(pics);//将流识别为JPEG格式
Image1.Picture.Assign(jpeg);
pics.Free;
jpeg.Free;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -