用VB写高效的图像处理程序.docVIP

  • 7
  • 0
  • 约1.61万字
  • 约 16页
  • 2017-11-17 发布于河南
  • 举报
用VB写高效的图像处理程序

用VB写高效的图像处理程序 自盘古开天地以来(好像夸张了点),一直有人抱怨VB程序速度慢。特别是图像处理,被认为是VB的禁区。说起来也是,市面上的关于VB的图像处理的数据都是先讲计算公式,再直接用PSet(或API函数SetPixel)逐点画(至少我见过的书都是这样)。效果是办到了,但速度慢得离谱:对一幅640*480的图像进行半透明合并就需要10秒钟;而在PhotoShop中,只要一设置图层的透明度,半透明效果立即呈现。难怪有人说VB的闲话。   但这并不表示VB不能写高速的图像处理程序,速度慢是因为没有使用正确的方法。   从VB5开始,能以本机代码编译成exe文件,所以不存在代码执行速度的问题。那么,是什么拖慢了速度呢?就是PSet和SetPixel!PSet把浮点形式的坐标转为像素单位,再交给SetPixel处理。而SetPixel呢,坐标系转化、剪裁区域判断、将颜色匹配为设备支持的最接近的,最后还要根据不同的颜色格式寻址、为将颜色写入其所在位进行位运算。经过这么多层处理,速度不慢才怪。   那么,怎样才能提高处理速度呢?使用DIB,直接对位图所在内存进行操作,速度可以大大提高。现在看看,这只是一个简单的色彩演示程序。 CPU:赛扬333;内存:PC100(很老的概念了)的SDRAM,128MB;单位:毫秒 Windows 98 Windows XP 说 明 VB_P

文档评论(0)

1亿VIP精品文档

相关文档