一幅位图分成20个小块,然后再组合起来成为一幅完整位图,假如取变化的第四块替换原来的第四块,该怎么得到原第四块的数据大小,总不能每次复制进总位图缓冲区都用个全局变量去保存吧 太虎了
大概意思是这样 总位图缓冲区char a[20000];单个小块数据char b[块数据大小];
memcpy(a,b,块大小);不停的复制进总位图缓冲区 组合起来之后 假如 这时第四块的数据变化了并且大小知道 该怎么把这些数据拷贝到原第四块数据的位置,并且第五块数据正好紧跟其后(新得到的第四块数据大小有可能大于或者小于原第四块数据大小) 
头疼!哪位大哥指点迷津

解决方案 »

  1.   

    如果想使用MEMCPY,那么,只有由于第四块数据的变化,必然导致后面的数据的偏移!所以,先必须计算以前第四块数据的大小,然后,得到与新的第四块数据的大小差值,下面就从第五块开始偏移这个差值,最后,再拷贝上第四块数据!另外,提醒一下楼主,提高结贴率,能吸引别人的回贴!好多人现在都不回答结贴率低的帖子!经常结贴,是对回贴人的一种尊重吧!
      

  2.   

    用opencv处理图像吧,里面的图像拷贝接口,
    可以使你不用明白底层的内存结构
    比较的方便
      

  3.   

    你就去看看Opencv的ROI吧,真的,很针对你的问题的,而且人家是经过优化的,正确和速度都是有保证,看完后你还会有新的发现的
      

  4.   

    我也赞同用Opencv的ROI,楼主找相关资料看看,这里也讲不太清楚
      

  5.   

    OPENCV真流行,到处都是!不过楼上几位都说的对,OPENCV ROI就可以解决你的问题!
    如果你用过OPENCV的话。
    看起来你好像没有- -!
    那如果做图像的话,最好去瞧瞧!
      

  6.   

    memcpy(a,b,块大小);
    ----------------
    这样肯定是不行的这样
    for(i = 0; i < 小图长; i++)
      for(j = 0; j < 小图高; j++)
    {
    //计算b点在a 的位置
       nIndex = (j+y偏移量)*大图长 + (i+ x偏移量)
       a[nIndex] = b[j*小图长 + i]
    }y偏移量 是指小图低部在大图中的 Y位置