有一幅灰度图的数据矩阵,现在要将它向x,y方向平移(M,N)个像素,平移后补充的部分用0填充,数据存于原矩阵,要能尽可能地高效,应该怎么实现.

解决方案 »

  1.   

    可否说得具体点,要copy的内存不是连续的啊?
      

  2.   

    一行一行的memcpy(),用0填充的部分用memset(),就只能这么快了.
    如果行之间还是不连续,而且模式高于8位,RGB模式rgb(255,255,255)
    可以改成rgb(0,255,255),rgb(1,255,255),rgb(2,255,255),rgb(3,255,255)
    r位用来作标记,反正是灰度图像.
      

  3.   

    需要自己计算 然后填充BMP移动过后产生的空白位置。 也可以在内存中创建一个移动后大小的位图 然后把原图贴在移动后的位置 再用内存中创建的位图数据替换原来的矩阵数据。