读书人

100分!求简单有关问题算法

发布时间: 2012-01-20 18:53:53 作者: rapoo

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

[解决办法]
如果想使用MEMCPY,那么,只有由于第四块数据的变化,必然导致后面的数据的偏移!所以,先必须计算以前第四块数据的大小,然后,得到与新的第四块数据的大小差值,下面就从第五块开始偏移这个差值,最后,再拷贝上第四块数据!

另外,提醒一下楼主,提高结贴率,能吸引别人的回贴!好多人现在都不回答结贴率低的帖子!经常结贴,是对回贴人的一种尊重吧!

[解决办法]
用opencv处理图像吧,里面的图像拷贝接口,
可以使你不用明白底层的内存结构
比较的方便
[解决办法]
你就去看看Opencv的ROI吧,真的,很针对你的问题的,而且人家是经过优化的,正确和速度都是有保证,看完后你还会有新的发现的
[解决办法]
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位置

读书人网 >VC/MFC

热点推荐