怎么把8位存放的数组转为16位的
8位原始数组:BYTE* pSrc;(已初始化过了)
16位目标数组:short* pDst;
转换大小:int width, int height
请问下高手,我这样做是否可以:
1. 直接使用 pDst = (short*) pSrc 是否可以??
2. 用循环:
void Convert_8u16s(BYTE* pSrc, int width, int height, short* pDst)
{
int i,j;
BYTE *ptr1;
ptr1 = pSrc;
short *ptr2;
ptr2 = pDst;
for(i = 0; i< height; i++)
for(j = 0; j<width; j++)
{
*ptr2 = (short*) pSrc;
ptr1++;
ptr2++;
}
}
上面这两种是否可以,或还有更简洁可行的方法?
[解决办法]
2可以,1就不行了。。。
[解决办法]
用stl泛型算法,一句话
copy(pSrc, pSrc+height*width, pDst);