2016-03-23 157 views
0

我有代码翻转32 x 32像素的数组,但我不知道如何水平翻转它。水平翻转像素阵列

这里是垂直翻转的代码。

for (int i = 0; i < pixels.length; i++) { 
     newPixels[(i/32) * 32 
       + (i % 32)] = pixels[(32 - (i/32) - 1) * Grid.SIZE + (i % 32)]; 
} 

由于32是宽度高度,这是不言而喻在所有这些地方

+1

这很奇怪。 '(i/32)* 32 +(i%32)'只是混淆的说'i'的方式。你能否更详细地解释这个问题? –

回答

1
int imageWidth = 32; 
for (int i = 0; i < pixels.length; i++) { 
    newPixels[i] = pixels[i - 2 * (i % imageWidth) + imageWidth - 1]; 
} 

使用的指数是(i/imageWidth) * imageWidth = i - (i % imageWidth)(该行的偏移)和imageWidth - (i % imageWidth) - 1总和( x位置镜像在中心)