F
fenian
Unregistered / Unconfirmed
GUEST, unregistred user!
oracle数据库,blob字段,保存的是图象,通过plsql将该图象保存为jpg文件,然后用delphi的TImage加载进来是正常的。
如果通过程序:
stream := tbl1.CreateBlobStream(tbl1.FieldByName('RXZP'), bmRead);
try
if (stream.Size>6) then
if (pInteger(pchar(TMemoryStream(stream).Memory)+6)^=PInteger(JFIFFlag)^) then
begin
JPG:=TJpegImage.Create;
try
try
JPG.LoadFromStream(stream);
JPG.SaveToFile('c:/1.jpg');
img1.Picture.LoadFromFile('c:/1.jpg');
Except
img1.Picture.Graphic:=nil;
end;
finally
JPG.Free;
end;
end;
finally
stream.Free;
end;
这种方式导出的jpg文件,用delphi的TImage加载进来时报错:Jpeg error #68。
但是图片能够正常显示,好象是在 paint 方法中抱的错。用别的看图工具打开也是没问题的,vb加载也正常,总之就是delphi加载时会报错。
望各位教我,谢谢!
注:该表有几十万条记录,大多数的记录都是正常的,但是就是有那么一小部分的记录的图象导出再加载的时候报错。之前这些记录是怎么进入数据库的我也不知道!
哪位大哥有兴趣,我将导出的jpg文件发给你,你可以加载进来试试看,真的是很奇怪!除了delphi会报错,别的工具打开都没问题!我的qq:331215792
如果通过程序:
stream := tbl1.CreateBlobStream(tbl1.FieldByName('RXZP'), bmRead);
try
if (stream.Size>6) then
if (pInteger(pchar(TMemoryStream(stream).Memory)+6)^=PInteger(JFIFFlag)^) then
begin
JPG:=TJpegImage.Create;
try
try
JPG.LoadFromStream(stream);
JPG.SaveToFile('c:/1.jpg');
img1.Picture.LoadFromFile('c:/1.jpg');
Except
img1.Picture.Graphic:=nil;
end;
finally
JPG.Free;
end;
end;
finally
stream.Free;
end;
这种方式导出的jpg文件,用delphi的TImage加载进来时报错:Jpeg error #68。
但是图片能够正常显示,好象是在 paint 方法中抱的错。用别的看图工具打开也是没问题的,vb加载也正常,总之就是delphi加载时会报错。
望各位教我,谢谢!
注:该表有几十万条记录,大多数的记录都是正常的,但是就是有那么一小部分的记录的图象导出再加载的时候报错。之前这些记录是怎么进入数据库的我也不知道!
哪位大哥有兴趣,我将导出的jpg文件发给你,你可以加载进来试试看,真的是很奇怪!除了delphi会报错,别的工具打开都没问题!我的qq:331215792