关于jpg格式存放在image类型的字段(26分)

  • 主题发起人 主题发起人 Z_JJ
  • 开始时间 开始时间
Z

Z_JJ

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我网站( http://go.163.com/delphibbs )上的网友发的帖子,我以前没接触过
“请问怎样将jpg格式的图片存放在image类型的字段里,还有怎样让它读出存到dbimage里头”
你也可以到我网站上的论坛(技术探讨)上答复这位网友的帖子
我想让网站上发的帖子都能解决,可是我的水平又这么有限,现在分数也用完了,希望能遇上好心人
 
存进去容易,直接用图片打开对话框打开图片文件,然后用字段赋值就行了,
但使用DBIMAGE显不出来,哪位高手请赐教〉
有种办法可以,就是先读出来存到文件中,然后用IMAGE控件显出来,再USE中要加上JPEG.
 
你可以看看这一贴,能够解决你的问题.
你要显示出来,还得在读出来的时候再转换一下.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=698968
这是图像转换的.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=724648
http://www.delphibbs.com/delphibbs/dispq.asp?lid=694696
 
[:D]
unit Unit1;
interface
uses
Windows, Messages, jpeg, Sysutils, DBTables, Db, Dialogs, ExtDlgs,Controls, StdCtrls,
Buttons, Classes, Graphics, Forms, Menus, ExtCtrls, ComCtrls, ToolWin,
ImgList,StdActns, DBCtrls, Grids,winprocs, DBGrids;
type
TForm1 = class(TForm)
……
在query里定义一个函数:tx_temp2(在它的SQL里)
procedure TForm1.BitBtn1Click(Sender: TObject); //存储
var jpegs:TJpegImage;
mstream: tstringstream;
begin
jpegs:=TJpegImage.Create;
jpegs.Assign(image1.Picture.Graphic);
mstream:=Tstringstream.create('');
jpegs.SaveToStream(mStream);
query1.SQL.Clear;
query1.SQL.add('insert into table1(a) values(:tx_temp2)');
query1.Params[0].AsBlob:=mstream.DataString;
query1.execsql;
end;
显示
procedure TForm1.BitBtn2Click(Sender: TObject);
var
mStream: tstream;
Jpegs: TJpegImage;
begin
query1.close ;
query1.sql.clear ;
query1.sql.text:='select * from table1 where 条件';
query1.open ;
jpegs:=TJpegImage.Create;
mStream :=Query1.CreateBlobStream(Query1.FieldByName('passer_picture'),bmRead);
try
mstream.Position:=0;
if mstream.Size>0 then
begin
jpegs.LoadFromStream(mstream);
image2.Picture.Assign(jpegs);
end
else
begin
image2.Picture.Assign(nil);
end;
finally
jpegs.Free;
mstream.Free;
end;
end;

这样好象是应该可以了我没有使用dbimage直接用image也可以实现显示的作用
 
楼上的GG说的很清楚啊!如果还没有搞明白的话,你可以多看看文件流的操作,可以使用TSTREAM来实现该功能!
代码:
[:D]
 
感谢各位,分数不够请谅解
 
多人接受答案了。
 
后退
顶部