我在理解(imageptt->h / 4) + (i / 2)
的作用时遇到了很大的问题:
for(int i= 0; i < imageptt->h; i++)
{
for(int j = 0; j < imageptt->w; j++)
{
pixels[i][j] = old[(imageptt->h / 4) + (i / 2)]
[(imageptt->w / 4) + (j / 2)];
}
}
最佳答案
该代码似乎要做的是将new_pixels
设置为old_pixels
的中央四分之一,并按比例放大到相同的大小。
例如,如果old_pixels
为:
ABCDEFGH
IHJKLMNO
PQRSTUVW
XYZabcde
fghijklm
nopqrstu
vwxyz012
3456789*
然后
new_pixels
将设置为RRSSTTUU
RRSSTTUU
ZZaabbcc
ZZaabbcc
hhiijjkk
hhiijjkk
ppqqrrss
ppqqrrss
(假设在图像的行上有一个外部循环)。
将
(image_ptr->height / 4)
和(image_ptr->width / 4)
添加到索引开始从垂直和水平方向1/4的偏移量读取到old_pixels
中。将(i / 2)
和(j / 2)
分开将图像放大2倍。