例如我有一图象文件:a.jpg 想用TFileStream 方法如何才能把它保存到
uses jpeg;
type
myRecord = record
other: string[30];
photo: Tjpegimage;
end;如何保存到 photo 中
如何读取到 窗体上的 Image1 中
uses jpeg;
type
myRecord = record
other: string[30];
photo: Tjpegimage;
end;如何保存到 photo 中
如何读取到 窗体上的 Image1 中
这本书有关于这方面的例子!
photo: Tjpegimage;
begin
ft2:=TFileStream.Create('c:\a.jpg',fmOpenRead);
ft1:=TFileStream.Create('c:\b.jpg',fmOpenRead);
photo:= TJpegimage.Create;
photo.LoadFromStream(ft1); image1.Picture.Graphic:=TJpegimage.Create;
image1.Picture.Graphic.LoadFromStream(ft2); image1.Picture.Graphic.Assign(photo);
other: string[30];
photo: Tjpegimage;//这儿的PHOTO是一个引用类型,也就是只是
//一个四字节的指针,把它存入文件是没有意义的.
//如果图象文件比较小,可以用一个固定大小的字符数组.
end;
作者:刘志强
image表:
code char(10) ,
image longblob
}
unit Unit119;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, MySQLDataset, Grids, DBGrids,MySQLServer, StdCtrls, DBCtrls;type
TForm1 = class(TForm)
MySQLServer1: TMySQLServer;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
MySQLQuery1: TMySQLQuery;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
begin
try
try
//向Mysql表写入Bmp图像
// MySQLQuery1.SQL.Clear;
// MySQLQuery1.SQL.Add('select * from image where code="刘志12"');
MySQLQuery1.Open;
if not (MySQLQuery1.State in [dsInsert, dsEdit]) then
MySQLQuery1.Insert;
MySQLQuery1.FieldByName('code').AsString:=Edit1.Text;
TBlobField(MySQLQuery1.FieldByName('image')).loadFromFile('C:\masm32\example8\mob\cws2\test.bmp');
//MySQLQuery1.TableName:='image';
MySQLQuery1.post;
finally
MySQLQuery1.Close;
end;
except
on EDatabaseError do
begin
case MySQLServer1.Server.net.last_errno of
1062 : //已有此记录
ShowMessage(inttostr(MySQLServer1.Server.net.last_errno));
// ShowMessage( MySQLServer1.Server.net.last_error);
end;
end;
end;end;procedure TForm1.Button2Click(Sender: TObject);
var
bmp:TBitmap;
stream:TMySQLBlobStream;
begin
//从Mysql表读出Bmp图像
try
MySQLQuery1.SQl.Clear;
MySQLQuery1.SQL.Add('select * from image where code="121212"');
MySQLQuery1.Open; // MySQLQuery1.Next;
MySQLQuery1.Edit;
Stream := TMySQLBlobStream.Create(MySQLQuery1.FieldByName('image') as TBlobField, bmReadWrite);
bmp:=TBitmap.Create;
bmp.LoadFromStream(stream);
MySQLQuery1.Close;
canvas.Draw(0,0,bmp);
finally
bmp.free;
Stream.Free;
end;
end;
end.