настоящее время я использую этот подход, чтобы скопировать некоторые значения байтов в течение:C++ указатель на оптимизацию массива байт
for (int i = 0; i < (iLen + 1); i++)
{
*(pBuffer + i) = Image.pVid[i];
}
Я хотел бы спросить, есть ли способ, чтобы скопировать эти значения более чем на одном дыхании, возможно, используя memcopy для увеличения скорости.
Весь код:
extern "C" __declspec(dllexport) int __stdcall GetCameraImage(BYTE pBuffer[], int Type, int uWidth, int uHeight)
{
CameraImage Image;
int ret;
Image.pVid = (unsigned int*)malloc(4 * uWidth*uHeight);
ret = stGetCameraImage(&Image, 1, uWidth, uHeight);
if (ret == ERR_SUCCESS)
{
int iLen = (4 * uWidth * uHeight);
for (int i = 0; i < (iLen + 1); i++)
{
*(pBuffer + i) = Image.pVid[i];
}
////print(“ImageType = %d, width = %d, height = %d”, Image.Type, Image.Width,
//// Image.Height);
////print(“First Pixel : B = %d, G = %d, R = %d”, Image.pVid[0], Image.pVid[1],
//// Image.pVid[2]);
////print(“Second Pixel : B = %d, G = %d, R = %d”, Image.pVid[4], Image.pVid[5],
//// Image.pVid[6]);
}
free(Image.pVid);
return ret;
}
Edit:
* идентификатору это:
unsigned int *pVid; // pointer to image data (Format RGB32...)
Вы уверены, что 'i <(iLen + 1);'? –
Не уверен в этом. Должно ли быть i
tmighty
Немного непонятно: вы хотите скопировать байт? Другими словами, каков размер pBuffer: такое же количество элементов, что и в изображении, или такое же количество байтов? –