请问如何加快大的图像文件的加载速度?

peterleex 2003-08-18 12:52:46
比方说 一个图象文件是 1024*768 , 它的加载速度肯定比较慢,因为需要需要一个一个 pixel 的读么。
是否可以对图像文件进行一下操作,以使在不明显影响图像质量的前提下,加速图像的加载?
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterleex 2003-09-16
  • 打赏
  • 举报
回复
是的,我先做个测试,看看瓶颈到底在哪里
寻开心 2003-08-18
  • 打赏
  • 举报
回复
从加载来说,只要你不是一个一个象素的读,两个图片的加载速度差异不会很大。
虽然说IO操作比较慢,但是带缓冲区的读写速度还是很快的,至少对于上面规格的两个图片的读取速度上没有多大的区别。

你感觉慢,那是因为显示一个大图片也要比显示一个小图片慢。

最简单的办法,你做一个时间测试程序,比较一下就可以知道,从磁盘加载的速度差异具体是多少。
peterleex 2003-08-18
  • 打赏
  • 举报
回复
所以我目前需要解决的问题就是如何使得 1024*768 的 BMP 和 800*600 的图像加载一样快,any good idea ?
至于图像处理库我有。
寻开心 2003-08-18
  • 打赏
  • 举报
回复
看来你对文件存储格式还不太了解
BMP文件存储格式前面是一个文件头,里面记录了颜色的深度和图片大小等信息,后面记录的就是图片的数据,这些数据是按照顺序依次排列的,所以你可以一次读入内存当中的。

磁盘IO,是很浪费时间的,无论什么时候,只要有可能都一次从磁盘读取多个内容,尽量减少IO操作。

图片大小不同,加载的时间也不同,1024×768肯定比800×600慢一些。

JPEG格式和BMP不同,数据是经过压缩的,但是解压缩工作也是在内存当中进行的。显示卡识别的图形格式就是位图,JPEG是经过转换到位图后才使用的。压缩过所以存储大小会小,经过优化处理的解压缩工具可以高效的完成转换工作,所以你感觉不到太长的时间延迟。

如果你对这些文件格式不熟悉,就利用现有的图形库,例如CXIMAGE,它可以在CODEPROJECT上面找到下载地址。不要试图自己处理所有数据的IO和转换,那是很麻烦的事情。
peterleex 2003-08-18
  • 打赏
  • 举报
回复
那 BMP 文件中的图像信息(比如每个象素的的 RGB 数值)是怎么读到内存中去的呢?
如果说两个 BMP 图片,文件大小相同,但是图像的 Height 和 Width 不同(一个是 800*600 ,另一个是 1024*768 ),哪个文件加载速度更快一些呢?
另外,我做过一个实验:
一个 BMP 文件 转换为 jpeg 后 ,文件大小明显缩小了,但是两个文件的加载速度(读到每存并显示)是差不多的,这又如何解释呢?
寻开心 2003-08-18
  • 打赏
  • 举报
回复
谁说文件是一个一个PIXEL的读?
大多数都是一次读入内存然后展开的。磁盘操作比较慢,所以必须要利用缓冲,一次读入多个数据,最好是512的倍数,这样很快。

4,450

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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