我的SQL表只能存取BMP图片,请帮我!!!!(50分)

  • 主题发起人 dearchenzhihua
  • 开始时间
D

dearchenzhihua

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL表:image字段
存图片时:
(datamodule1.yangongquery.FieldByName('zhaopian')AS TBlobField).Assign(image1.picture);
取图片时:
yangongform.Image1.Picture.Assign((yangongquery.FieldByName('zhaopian')AS TBlobField));
但只能存取bmp图. (JPG和gif都不能存取),请问各位这是为什么!!!!
请告诉我原因和解决办法!!!!!!!
 
sql只能存bmp吧
 
不可能,SQL中可以保存任何格式数据。你可以把字段中的信息先写出JPG文件,然后
用IMAGE读文件。
 
var str:Tmemorystream;
if image1.Picture.Graphic<>nil then //把img里的图片用流形式保存到数据库
begin
str:=Tmemorystream.Create;
image1.Picture.Graphic.SaveToStream(str);
str.Position:=0;
Tblobfield(wsdaDataf.Query_wj.FieldByName('photo')).loadfromstream(str);
str.Free;
end
另外,我建议还是用dbimage
DBImg_photo.Picture.LoadFromFile(OpenPictureDialog1.FileName);
DBImg_photo.CopyToClipboard;
DBImg_photo.PasteFromClipboard;
 
直接使用dbimage不就可以了啊
 
用下面的转存
procedure Jpg2Bmp(const source,dest:string);
var
MyJpeg: TJpegImage;
bmp: Tbitmap;
begin
bmp:=tbitmap.Create;
MyJpeg:= TJpegImage.Create;
try
myjpeg.LoadFromFile(source);
bmp.Assign(myjpeg);
bmp.SaveToFile(dest);
finally
bmp.free;
myjpeg.Free;
end;
end;
 
to zhousi:
你的方法我试了,但还是不能存取.用dbimage 控件时.他的LoadFromFile方法只能存取BMP
的图片.至于PasteFromClipboard的方法我没试.因为图片从文件中取的.
to antic_ant:
你的方法可行,我是将JPEG 转BMP 后再存入的.谢谢你了,,分就给你吧,一点小意思不成敬义!!!
to all:
也谢谢你们的参与,我的问题被决了..谢谢你们!!!
 
to dearchenzhihua
我可是一直用的好好的,bmp文件可大了,我也很少用
 
顶部