有關圖片用流的形式讀寫(50分)

  • 主题发起人 主题发起人 jesse.zhou
  • 开始时间 开始时间
J

jesse.zhou

Unregistered / Unconfirmed
GUEST, unregistred user!
sqlserver中我有一個表用來保存圖片(worker_no char(6),圖片(binaray))
界面上有edit1,image1控件
1.把圖片寫到數據庫中
2.把數據庫中的圖片寫到image1中
 
不好意思表的格式:(worker_no char(6),圖片 image)
用流的形式寫到數據庫中我會寫,但把表中圖片讀出來卻不知怎樣讀
 
BMP的和JPG的处理方法不太一样,你自己看吧
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
t1 : TTable;
mstream1 : TMemoryStream;
// jpeg : TJPEGImage;
begin
// jpeg := TJPEGImage.Create ;
t1 := TTable.Create(nil);
t1.DatabaseName := db1.DatabaseName ;
t1.TableName := 'T_BASE';
t1.Open;
t1.First ;
while not t1.Eof do
begin
if t1.FieldByName('id').AsInteger = nCurrentRec then
begin
mstream1 := TMemoryStream.Create;
// TBlobField(t1.FieldByName('image')).SaveToFile('c:/temp.bmp');
// imageBase.Picture.Bitmap.LoadFromFile('c:/temp.bmp');
TBlobField(t1.FieldByName('image')).SaveToStream(mstream1) ;
mstream1.Position := 0;
// TBlobField(t1.FieldByName('image')).SaveToFile ('c:/2.jpg');
// imageBase.Picture.LoadFromFile('c:/2.jpg');
imageBase.Picture.Bitmap.LoadFromStream(mstream1);//bmp文件
// jpeg.LoadFromStream(mstream1);//JPEG文件
// imageBase.Picture.Assign(jpeg);
// imageBase.Picture.Bitmap.SaveToFile('c:/temp.bmp');
{ if OpenDialog1.Execute then
begin
if FileExists(OpenDialog1.FileName) then
begin
imageBase.Picture.LoadFromFile(OpenDialog1.FileName);
end;
end;}
imageBase.AutoSize := true;
DBGrid1.Visible := false;
imageBase.Show ;
imageBase.OnClick := imageBaseClick;
mstream1.Free ;
end;
t1.Next;
end;
t1.Close;
t1.Free;
end;
 
为何要读流呢?直接使用文件不是挺好吗?
读写流不是一样的吗?
 
后退
顶部