Delphi中如何显示一个大图象?(200分)

  • 主题发起人 主题发起人 lzlishl
  • 开始时间 开始时间
L

lzlishl

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用TImage 控件调入一个大图象(5000*3000 JPG格式),当将stretch置为FALSE 及按
原图大小显示时,运行时报告“参数错误”,如果将stretch置为TRUE,问题就没有了,只
是速度很慢。
哪位大侠告诉我是何原因?另,如何提高显示速度。
 
这个问题以前也有人问过,这必须要用文件来,因为屏幕上的点一般只有1024*768,这样就可以分块来显示。只显示我程序还是比较简单的。
 
在加载图像前
MyBitmap.Pixelformat := pf24bit;
MyBitmap.ReleaseHandle;
 
to:zytzjx
能否将你的方法说得清楚一些,或者如果你有现成的调用大幅面图象的程序,能否
发一份过来。或在此展示,谢谢。
to:zhuhongqing
你的方法好像不好使,运行程序依然出现“参数错误”的消息。实际上,如果重新
启动机子,可以运行程序显示若干次,但几次后就不行了。在Delphi 编辑环境中运行
可以看到类似资源用尽的错误提示。
不知是何原因。
又听说,delphi 的Graphics单元有限制图象大小的参数值,通过修改该值,可以
调入较大的图象。不知确有其事。希望你能指点。


图象是在设计阶段通过下列语句调入:

Procedure TForm2.FormCreate(Sender:TObject);
begin
...


Try
Image1.Picture.Bitmap.PixelFormat:=pf24bit;
Image1.Picture.Bitmap.releaseHandle.
Image1.Picture.LoadFromFile('D:/....');
except
end;
...
end;





 
你可以试试用流的方式读入,然后将要显示的地方,拷出来,这样在显示的时候可以快
一点。
 
zytzjx,CJF:
很抱歉,出差一阵,未能及时回复。但我非常感谢二位。
我的主要问题是无法现实大幅图(如果将原图缩小一半显示,就不会出现错误提示,尽管
还是比较慢)。我对zytzjx 的建议很感兴趣,能否将你做的工作介绍以下。如果能用EMAIL
传过,我将十分感谢。

 
我现在做的是图形图像处理,我们公司的http://www.aceunion.com.我是负责大提花设计
 
分块显示;恐怕要牵涉到图片分割;
我也是瞎猜;但你是专业的;应当会分割;
只要确定每块的大小就可以啦
我曾用小图片做背景(平铺)效果很好;无缝!
大图也应可以;
 
图像分这个其实就是一个对文件操作。可以用一个将分块读出,这个都一个。
 
to lzlishl:
大图象的载入,即使是象PHOTOSHOP这样的专业图象处理公司也没有太好的
解决方法;你可以用PHOTOSHOP来打开一幅大图,速度也很慢!
我在实际应用中的最好方法就是将大图分块,分块读入;但是你要注意拼接的问题!
 
这个问题比较麻烦,你可以去买一个dll就可以,
金山的图霸你看一下就知道了。这个要是写可能不是很好,
我现在写的也不好用,主要是速度不行。
 
除非利用 assembly language 写核心代码!
现有的没几个太好的!
快——多快算快???!
我有一个控件,速度自觉还可以!
你说说:是几秒?还是几分钟?
 
如果你希望得到相关文档或者源码,请Email申请加入DIB开发小组!下面是DIB小组主要成员邮件地址!
DIB就是专门研究图象显示的小组代称!而且Opensource,不过要小组成员才可以!核心代码为汇编。

DIB Components

Name: DJ (Undernet #Delphi)
Email: dj@sguft.com

Name: Dan Strandberg
Email: webmaster@game-editing.net

Name: Michel Brazeau
Email: michel@intervalsoftware.com

Name: Azza
Email: azzaazza69@hotmail.com

Name: Sébastien Merle
Email: sylane@excite.com

 
谢谢各位!
 
后退
顶部