我有一张比窗体大的bmp,要画在窗体上,如何只绘制其中的一部分,以提高绘图效率?也就是只绘制能被看到那部分,其它的忽略?

解决方案 »

  1.   

    采用graphics.DrawImage方法,来指明画的大小以及起始位置。
      

  2.   

    学习
    --------------------
    免费asp.net空间申请
    asp.net 空间 100M 50元每年
    顶级域名 50 
    上海京拓科技(www.kingtoo.com)
      

  3.   

    除了Knight94(愚翁)以外,其它的高手呢?
      

  4.   

    to 我就是这么做的,不过发现图片加大了以后会,明显慢了采用graphics.DrawImage方法的时候,图片要完全加载。
    如果你觉得是图片加载降低了效率,那么问题所在的地方就是图片大小的问题。但是想实现图片不完全加载,并且只显示图片一部分的话,光从graphics去draw入手不能达到这个目的。需要同时对图片进行处理,为了避免一次加载过多的数据,把图片进行分割成小块,分别存成文件。那么在draw的时候,根据位置决定读取那几张文件进行显示。
      

  5.   

    to Knight94(愚翁),不是吧,这样的效率也太低了吧?如果我做的是cad软件的话,还要切割文件,还要保存文件,还要读取文件,最后显示文件,那速度还不慢死了?我看过有人用vc++就能实现这个功能,只是不知道在c#中如何实现
      

  6.   

    如果你参照gis来说的话,绝对是切分图片形成不同文件。至于cad软件来说,在所存的文件中也肯定作了细节处理。