调用数据库图像,显示在image控件中,图像下部分被一层全是点覆盖,看不到全部图像,郁闷,求解决。

kerisyml 2009-02-25 09:28:29
我是利用delphi调用Oracle数据库中的blob字段来显示在image控件中的。以前写过,调的好好的。现在把哪个拿过来重新写程序,反而不行。
很简单的,利用一个按钮,调用图片,并显示在image中。image控件中属性没有改动一个,改动了好像也没有用。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, StdCtrls, jpeg;

type
TForm1 = class(TForm)
Database1: TDatabase;
Button1: TButton;
Query1: TQuery;
Image1: TImage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
ssql:string;
mStream:TMemoryStream;
bl:TBlobField ;
JpgFile:TjpegImage;
str_dzjc,str_jkbh:string;
i:integer;
begin
mStream:=TMemoryStream.Create ;
JpgFile:=TjpegImage.Create ;
Query1.sql.Clear;
ssql:='select dzjcid,tpxl,tp from syn_bk_picture where dzjcid=''1001'' and tpxl=0';
Query1.sql.add(ssql);
try
Query1.Open;
except
exit;
end;
bl:=TBlobField(Query1.FieldByName('tp'));//顯示的轉換為BlobFiled並保存至內存流
bl.SaveToStream(mStream);
mStream.Position :=0;
jpgfile.LoadFromStream(MStream);
Image1.Picture.Assign(JpgFile);
end;
...全文
89 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbsjz33 2009-02-28
  • 打赏
  • 举报
回复
不懂,帮顶
ahjoe 2009-02-28
  • 打赏
  • 举报
回复
没读取出图像的全部数据,也许库里面就没存完整。
starluck 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bdmh 的回复:]
^_^,没想到楼主头脑很敏捷吗,老刘也落后了
[/Quote]

呵呵,剛在跟別人談點事情。
寻梦928 2009-02-25
  • 打赏
  • 举报
回复
图像失真!
bdmh 2009-02-25
  • 打赏
  • 举报
回复
^_^,没想到楼主头脑很敏捷吗,老刘也落后了
starluck 2009-02-25
  • 打赏
  • 举报
回复
暈,就談了事情,你就解決了,太快了吧
starluck 2009-02-25
  • 打赏
  • 举报
回复


把 BDE 的 BlobSize 調大一點,設置的太小了,被壓掉了。
kerisyml 2009-02-25
  • 打赏
  • 举报
回复
已经解决了,原来是bde中的blob_size设置的太小了,设置成2048就可以了。
bdmh 2009-02-25
  • 打赏
  • 举报
回复
估计是文件信息被破坏或丢失,你存的是jpg还是bmp
sanguomi 2009-02-25
  • 打赏
  • 举报
回复
看不出什么问题

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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