我要把一张大的图片分割成若干个小的图片(大概有500多个)最开始我觉得Bitmap.Clone方法很简单,结果用了一下,发现耗时26秒左右然后我又先生成空白的Bitmap,在用Graphics画上去,结果耗时7秒左右本来我有点满意了,后来不甘心,又试了一下直接复制一个一个像素,结果耗时不到1秒有没有天理啊!越简单的方法耗时越多,敢情微软是故意折腾人啊?!还有没有更快的方法?怎样做才是最好呢?

解决方案 »

  1.   

    哈哈!个人观点如下:
    1.Bitmap.Clone   --------要克隆很多东西。完全一样!
    2.先生成空白的Bitmap,在用Graphics画上去。---------------其实有些东西已经改变了。具体什么。我不知道。
    3.又试了一下直接复制一个一个像素。最简单的。---------------其实什么东西都不一样。只有像素一样!
      

  2.   

    Bitmap.Clone  的很多信息可能是我们不关心的。clone本就是从基类里继承过来的。
      

  3.   

    你的图片是多大?Width和Height
    最后复制像素的代码怎么写的?最好提供可调试的代码,看看有没有优化的余地。
      

  4.   

    Clone把你所有的图片信息都复制过去了,比如当前的环境等等
    graphics方法涉及到设备驱动器句柄的获得和释放,稍微慢点
    用像素法是最简单的,只是把每个像素复制过去,很多信息都没保留,要求不高就可以用这个了。