我有一张720x576的图片在unsigned char luma[414720]中逐行保存,我需要显示一张640x480大小的居中图片。
我的问题是:
使用一个for cycle有选择地访问保存在一个缓冲区中的数据的最有效方法是什么?
谢谢你的回答。
彼得杜加

最佳答案

试试这个:
newLuma是要展示的新图片。

int i= 0;
char newLuma[640*480];
int rowStart = (576 - 480)/2 -1 ;
int colStart = (720 - 640)/2 -1 ;


for ( i = 0; i < 480; i++)
{
    memcpy(newLuma[i*640], luma[720*(rowStart + i) + colStart], 640);
}

10-06 04:49