从数据库中存入打开JPGE图片,图片失真、漏色的问题?

5556667 2004-02-07 03:03:26
从数据库中存入打开JPGE图片,图片失真、漏色的问题?
图片显示时图片会有部分丢失现象,比如当有大片颜色时,颜色部分会出现一些漏点,漏出PICTURE控件的底色,图片的一些区域好像是被漏空,少了几块一样,这是什么原因造成的,要怎么解决?
存入图片的代码:
procedure Twlform.Button6Click(Sender: TObject);
var
myjpeg : tjpegimage;
ms : tmemorystream;
begin
openpicturedialog1.Execute ;
if openpicturedialog1.FileName <> '' then
begin
image1.Picture.LoadFromFile(openpicturedialog1.FileName);
openpicturedialog1.FileName :='';
myjpeg := tjpegimage.Create ;
try
with myjpeg do
begin
assign(image1.Picture.graphic);
ms:=tmemorystream.Create ;
savetostream(ms);
ms.Position := 0;
DataModule2.adotable1.edit;
tblobfield(DataModule2.adotable1.FieldByName('tp') ).LoadFromStream(ms);
DataModule2.adotable1.Post;
messagebox(getactivewindow() , '图像保存完毕!' , '保存' , mb_ok);
image1.Picture.CleanupInstance ;
end;
finally
myjpeg.free;
end;
end;
end;

打开图片的代码:

procedure Twlform.DBGrid2DblClick(Sender: TObject);
var
tempstream : tstringstream;
tempjpeg : tjpegimage;
begin
if datamodule2.DataSource1.DataSet.FieldByName('tp').AsString = '' then
begin
tpform.Image1.Picture.Assign(nil);
tpform.Image1.Canvas.Font.Size := 15;
tpform.Image1.Canvas.TextOut(20,20,'暂无图片') ;

end
else
begin
try
tempstream := tstringstream.Create('');
tblobfield(DataModule2.DataSource1 .DataSet.FieldByName('tp')).SaveToStream(tempstream);
tempstream.Position := 0;
tempjpeg := tjpegimage.Create ;
tempjpeg.loadfromstream(tempstream);
tpform.image1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.free;
tempjpeg.free;
end;
end;
...全文
89 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧