一个很辣手的问题,为什么图片的加载速度特别慢?(200分)

  • 主题发起人 蜡笔小小新
  • 开始时间

蜡笔小小新

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Image空件浏览图片时,图片的加载速度特别慢,不知谁有办法解决。谢谢!!!
图片的大小为 3339 X 4947
 
图片太大了,用BMP格式的图片,动态创建好一点,但效果也不是很理想
 
同 ACDSee 的打开速度比一比,
 
to zhbj
比 ACDSee 慢很多。
 
var
Bitmap:TBitmap;
procedure Tform1.FormCreate(Sender: TObject);
begin
Bitmap:=TBitmap.Create;
Bitmap.LoadFromFile(ExtractFilePath(ParamStr(0))+'backgroud.bmp');
end;

procedure Tform1.FormPaint(Sender: TObject);
var
x,y:integer;
begin
y:=0;
while y<mainform.Height do
begin x:=0;
while x<mainform.Width do
begin
canvas.Draw(x,y,Bitmap);
//用canvas.Draw函数在指定位置画图
x:=x+Bitmap.Width;
//x步长为位图宽
end;
y:=y+Bitmap.Height;
//y步长为位图高
end;
end;
我这里的IMAGE充满整个Form,也可以自己修改长宽

试试看速度如何
 
图片太大了,我以前做程序时也使用了一幅大图片(1.2M左右)加载时也慢的要死
别用BMP,那格式太大,可以用别的工具,如用PHOTOSHOP先将图片转换JPG之类的
格式,同时可以改变颜色,质量等,均衡一下,图片质量不会下降,文件又小了,加载还
快。
 
用PHOTOSHOP修改一下大小,就能搞定。我弄过的。
 
先用工具把图片转成jpg格式
然后
var
Jpg : TJpegImage;
...
Jpg := TJpegImage.Create;
jpg.LoadFromFile(...);
image1.canvas.bitmap.assign(jpg);
试一下速度
 
我的图片已经处理过了,这是处理过的大小,已经不能在处理了。
 
把BMP转成JPG再显示
 
jpg格式文件本身小,但加载慢
相对来说bmp格式文件加载快一点
 
????
像这么大的图片,应该是JPG快。
 
已经是JPG格式了
 
BMP加载如何?
图片太大,用BMP就用API画,用JPG格式就要找个好控件!
 
我显示2700*2000的速度还可以,1秒就差不多了。我的机器速度还可以。
 
TO YEATH
不知你是如何载入的,可否告诉我。谢谢!!!
 
我就直接用
image1.picture.loadfromfile('d:/temp.jpg')
 
我的也是,但是很慢
 
要不把你的图片发过来,我试试。
 
顶部