一个例子 var jpeg: TJPEGIMAGE; s: string; begin if Image2.Tag = 0 then begin showmessage('dd'); exit; end; s := extractfilepath(Application.ExeName) + 'jpeg.jpg'; jpeg := TJPEGIMAGE.Create; jpeg.Assign(Image2.picture); jpeg.CompressionQuality := 75; jpeg.Compress; jpeg.SaveToFile(s); if DM.DS_YGPHOTO.Active then begin if form1.Image1.Tag = 0 then begin DM.DS_YGPHOTO.Insert; DM.DS_YGPHOTO.fieldbyname('bh').AsString := DM.DS_YGHMC.fieldbyname('bh').AsString; tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s); end; if form1.Image1.Tag = 1 then begin DM.DS_YGPHOTO.edit; tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s); end; DM.DS_YGPHOTO.Post; end; freeandnil(jpeg); 上面的是存储 读取 var jpeg: TJPEGIMAGE; stream: TMemoryStream; begin Image1.picture.Assign(nil); if DM.DS_YGPHOTO.fieldbyname('photo').IsNull then begin Image1.Tag := 0; Panel2.Caption := '无照片'; end else begin jpeg := TJPEGIMAGE.Create; stream := TMemoryStream.Create; tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).savetostream(stream); stream.Seek(0, soFromBeginning); jpeg.loadfromstream(stream); Image1.picture.Bitmap.Assign(jpeg); freeandnil(jpeg); freeandnil(stream); Image1.Tag := 1; end; 这是存取JPEG格式的,如果BMP的话,就直接做就可以了,不用那个JPEG单元了
var
jpeg: TJPEGIMAGE;
s: string;
begin
if Image2.Tag = 0 then
begin
showmessage('dd');
exit;
end;
s := extractfilepath(Application.ExeName) + 'jpeg.jpg';
jpeg := TJPEGIMAGE.Create;
jpeg.Assign(Image2.picture);
jpeg.CompressionQuality := 75;
jpeg.Compress;
jpeg.SaveToFile(s);
if DM.DS_YGPHOTO.Active then
begin
if form1.Image1.Tag = 0 then
begin
DM.DS_YGPHOTO.Insert;
DM.DS_YGPHOTO.fieldbyname('bh').AsString := DM.DS_YGHMC.fieldbyname('bh').AsString;
tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s);
end;
if form1.Image1.Tag = 1 then
begin
DM.DS_YGPHOTO.edit;
tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).LoadFromFile(s);
end; DM.DS_YGPHOTO.Post;
end;
freeandnil(jpeg);
上面的是存储
读取
var
jpeg: TJPEGIMAGE;
stream: TMemoryStream;
begin
Image1.picture.Assign(nil);
if DM.DS_YGPHOTO.fieldbyname('photo').IsNull then
begin
Image1.Tag := 0;
Panel2.Caption := '无照片';
end
else
begin
jpeg := TJPEGIMAGE.Create;
stream := TMemoryStream.Create;
tblobfield(DM.DS_YGPHOTO.fieldbyname('photo')).savetostream(stream);
stream.Seek(0, soFromBeginning);
jpeg.loadfromstream(stream);
Image1.picture.Bitmap.Assign(jpeg);
freeandnil(jpeg);
freeandnil(stream);
Image1.Tag := 1;
end;
这是存取JPEG格式的,如果BMP的话,就直接做就可以了,不用那个JPEG单元了