资源描述
Delphi sql 存取图像
procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程
var
Stream:TMemoryStream;
begin
try
Stream := TMemoryStream.Create; // 创建内存流
Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中
adoquery1.Close;
adoquery1.SQL.Clear;
adoQuery1.SQL.Add('Insert into tbltemp (Image) values (:photo)'); // 进行插入操作
adoQuery1.Parameters.ParamByName('photo').LoadFromStream(Stream,ftBlob); // 读取保存的内存图
adoquery1.ExecSQL;
finally
Stream.Free; // 释放内存流
end;
end;
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;
sql server 2005 字段类型为 image
delphi使用的单元为jpeg, db, dbtables;
delphi 存储图片代码片段
procedure TForm1.btnPostClick(Sender: TObject);
var
lMemoStream : TMemoryStream;
jpg : TJpegImage;
begin
lMemoStream := TMemoryStream.Create;
jpg := TJpegimage.Create;
jpg.Assign(Img.Picture.Graphic);
jpg.SaveToStream(lMemoStream);
lMemoStream.Position := 0;
TBlobField(dm1.adoqrytea.fieldbyname('image')).LoadFromStream(lMemoStream);
dm1.adoqrytea.Post;
end;
delphi从数据库读取到image中的代码片段
procedure TForm3.FormShow(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
begin
MyJPEG:=TJPEGImage.Create;
MS:=TMemoryStream.Create;
if not dm1.adostuview.Active then
dm1.adostuview.Open;
with dm1.adostuview do
begin
TBlobField(dm1.adostuview.Fields[9]).SaveToStream(MS);
ms.Position := 0;
MyJPEG.LoadFromStream(MS);
Img.picture.assign(MyJPEG);
MyJPEg.free;
MS.free;
end;
end;
uses ,jpeg,db
show
procedure Tfrmyd.SpeedButton4Click(Sender: TObject);
const
JPEG_FLAG_BEGIN = $D8FF;
JPEG_FLAG_END = $D9FF;
var
Stream:TMemoryStream;
Flag1,Flag2:word;
Jpg:TjpegImage;
begin
dmdata.ADOQupdate.Close;
dmdata.ADOQupdate.SQL.Text:='SELECT * FROM Restaurant where reno=''5'''; // 查询图片
dmdata.ADOQupdate.Open;
if not dmdata.ADOQupdate.FieldByName('photo').IsNull then
begin
Stream:=TMemoryStream.Create ;
TBlobField(dmdata.ADOQupdate.FieldByName('photo')).SaveToStream(Stream); // 显示的转换为BlobField并保存到内存流
Stream.Position :=0;
Stream.Read(Flag1,SizeOf(Flag1));
Stream.Position:=Stream.Size-2;
Stream.Read(Flag2,sizeOf(Flag2));
if (flag1=JPEG_FLAG_BEGIN) and (flag2=JPEG_FLAG_END) then
begin
Stream.Position :=0;
Jpg:=TjpegImage.Create ;
jpg.LoadFromStream(Stream); // 加载jpeg图片
image1.Picture.Assign(Jpg);
jpg.Free;
end
else
begin
Stream.Position :=0; // 加载bmp图片
image1.Picture.BITMAP.LoadFromStream(Stream);
end;
end
else
begin
image1.Picture :=nil;
end;
end;
shave
procedure Tfrmyd.SpeedButton2Click(Sender: TObject);
var
Stream:TMemoryStream;
begin
if OpenDialog1.Execute then
begin
image1.Picture.LoadFromFile(OpenDialog1.FileName);
try
Stream := TMemoryStream.Create; // 创建内存流
Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中
dmdata.ADOQupdate.Close;
dmdata.ADOQupdate.SQL.Clear;
dmdata.ADOQupdate.SQL.Add('Insert into Restaurant (photo) values (:photo)'); // 进行插入操作
dmdata.ADOQupdate.Parameters.ParamByName('photo').LoadFromStream(Stream,ftBlob); // 读取保存的内存图
dmdata.ADOQupdate.ExecSQL;
finally
Stream.Free; // 释放内存流
end;
end;
end;
内存流中转换jpeg 传入imagelist 中
uses
Jpeg
myjpg:=TJPEGImage.Create;
mybmp:=TBitmap.Create;
tmpbmp:=TBitmap.Create;
myjpg.LoadFromFile(JPEG文件);
mybmp.Assign(myjpg);
tmpbmp.Width:=136;
tmpbmp.Height:=160;
tmpbmp.Canvas.StretchDraw(tmpbmp.Canvas.ClipRect,mybmp);
ImageList.Add(tmpbmp,nil);
展开阅读全文