jpeg error #52是什么意思呀,我好着急的(30分)

G

gyfstar

Unregistered / Unconfirmed
GUEST, unregistred user!
if not FieldByName('picture').isnull then
begin
ms:=tmemorystream.Create;
jpg:= tjpegimage.Create;
ms.Clear;
tblobfield(fieldbyname('picture')).Savetostream(ms);
ms.position:=0;
jpg.LoadFromStream(ms);
image1.Picture.Bitmap.Assign(jpg);
ms.Free;
jpg.Free;
end
我用的是三层,jpg图片可以存进去,可是我用上面的方法读出的时候
到jpg.LoadFromStream(ms)这句就出现了'jpeg error #52'的错误
各位好人,请你们帮助,我很急的,马上就要上交了
 
ms.position:=0;
改为 ms.Seek(0, soFrombegin
ning);
image1.Picture.Bitmap.Assign(jpg);
改为
image1.Picture.Graphic.LoadFromStream(ms);

-----
http://www.8421.org
 
qdyoung:按你的改了,可还是那个错误提示
 
if odphoto.FileName<>'' then
begin
iphoto.Picture.Graphic.SaveToStream(ms);
ms.Position:=0;
params.Clear;
params.add;
Params[0].loadfromstream(ms,ftblob);
end;
我是这样保存的
 
是你图片的格式不对,以bmp存进去的,以jpg读出来就会出这个问题. 你可以以bmp格式读出来试试.
 
要改为
TJpegImage(iphoto.Picture.Graphic).SaveToStream(ms);
否则保存的是bitmap
要不LoadFromFile一个jpeg文件试试
 
那要怎么做才可以存入jpg图像呢
我刚才试了,可以读出bmp图像
可是我想存jpg图像
不知道哪位大哥还有高见
 
你的jpeg是哪里来的,如果是文件,直接LoadFromFile,没有问题
JpegImage 直接 SaveToStream(ms);也没有问题,我都是这么用的
 
qdyoung:谢谢你,按你的方法还是有错误
是要用tfilestream吗
 
我的jpeg是用topenpicturedialog读出来的
然后再加载,你的不是吗
我以前不用三层的时候是没有错误的
就是用adoquery直接做的
 
Params[0].LoadFromFile(FileName)
 
这肯定是格式问题,我也遇到过.
 
rybml:好该怎么办呢
 
把一段尘封的住事又拿了出来,希望大家不要埋怨,我不是故意的在扰乱………
还是图片存入数据库的问题,老是不对,我真的不知道…………
我用的是三层,程序如下:(能存进去BMP,也可以读出来,但有的BMP存不进去,说TEXT与
IMAGE冲突,还有JPEG根本存不进去,我不知道什么原因,图片有问题,还是程序有问题呢?
这个问题已经困绕了我很长时间了,我也好迷茫………)
if odphoto.FileName<>'' then
begin
ms:=tmemorystream.Create;
iphoto.Picture.Bitmap.SaveToStream(ms);
ms.Position:=0;
params.Clear;
params.add;
Params[0].loadfromstream(ms,ftblob);
ms.Free;
end;
 
切!还不如把图片字节当作字符串存进去
 
可以告诉我怎样做吗?
谢谢
 
多人接受答案了。
 
顶部