У меня есть изображение размером 720x576, сохраненное по строке в unsigned char luma[414720]
и мне нужно отображать центрированное изображение размером 640x480.
Мой вопрос: каков наиболее эффективный способ выборочного доступа к данным, сохраненным в одном буфере, используя только один цикл?
Спасибо за ваши ответы.
Петр Дуга
Попробуй это:
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);
}
memcpy(newLuma[i*480], luma[576*(R+i)+C], 480)
это не должно быть memcpy(newLuma[i*480], luma[576*(R+i)+C], 480)
где R = (720-640)/2 - 1, C = (576-480)/2 -1
? Чего мне не хватает?
for
цикла».