var pic:TJpegImage; bmp:TBitmap; sm:TStringStream; begin if develop_query.State=dsInactive then begin MessageDlg('没有记录,请查询!',mtError,[mbOK],0); exit; end; OpenDialog1.Title:='打开照片'; if not OpenDialog1.Execute then exit; if OpenDialog1.FileName=NULL then exit; try pic:=TJpegImage.Create; bmp:=TBitmap.Create; sm:=TStringstream.Create(''); pic.LoadFromFile(OpenDialog1.Filename); bmp.Assign(pic); bmp.SaveToStream(sm); if not (develop_query.State in [dsInsert,dsEdit]) then begin develop_query.edit; TBlobField(develop_query.FieldByName('zp')).LoadFromStream(sm); develop_query.Post; end else begin TBlobField(develop_query.FieldByName('zp')).LoadFromStream(sm); end; finally bmp.Free; pic.free; sm.free; end; end;
uses jpeg; ...var v_1:TJPEGImage; begin v_1:=TJPEGImage.Create; v_1.LoadFromFile('c:\aa.jpg'); table1.fieldbyname('photo').assigned(v_1); end;
pic:TJpegImage;
bmp:TBitmap;
sm:TStringStream;
begin
if develop_query.State=dsInactive then
begin
MessageDlg('没有记录,请查询!',mtError,[mbOK],0);
exit;
end;
OpenDialog1.Title:='打开照片';
if not OpenDialog1.Execute then
exit;
if OpenDialog1.FileName=NULL then
exit;
try
pic:=TJpegImage.Create;
bmp:=TBitmap.Create;
sm:=TStringstream.Create(''); pic.LoadFromFile(OpenDialog1.Filename);
bmp.Assign(pic);
bmp.SaveToStream(sm); if not (develop_query.State in [dsInsert,dsEdit]) then
begin
develop_query.edit;
TBlobField(develop_query.FieldByName('zp')).LoadFromStream(sm); develop_query.Post;
end
else
begin
TBlobField(develop_query.FieldByName('zp')).LoadFromStream(sm);
end;
finally
bmp.Free;
pic.free;
sm.free;
end;
end;
...var v_1:TJPEGImage;
begin
v_1:=TJPEGImage.Create;
v_1.LoadFromFile('c:\aa.jpg');
table1.fieldbyname('photo').assigned(v_1);
end;
Var
jpeg: TJPEGImage;
bmp: TBitmap;
Begin
bmp:= TBitmap.Create;
try
bmp.LoadFromFile('e:\car.bmp');
jpeg:= TJPEGImage.Create;
try
jpeg.Assign(bmp);
jpeg.compress;
jpeg.SaveTofile('e:\car.jpg');
finally
jpeg.free
end;
finally
bmp.free
end;
end; 将上面代码中的 jpeg 和 bmp 交换一下就成了将 jpeg 转换为 bmp 。