2017-04-19 100 views
2

我需要翻轉圖像上方從圖像的右上角到左下角的假想對角線。這是我迄今爲止所擁有的。 getBasicPixel(x,y)以像素值的形式返回像素的RGB值。在對角線上翻轉圖像

public static void flipD(Picture p){ 
    int h= p.getHeight(); 
    int w= p.getWidth(); 
    int v=0; 

    for(int i=0; i< h; i++){ 
     for(int j=0; j<w; j++){ 
      v=p.getBasicPixel(i,j); 
      p.setBasicPixel(w-1-i, w-1-j, v); 
     } 
    } 
} 
+2

交換事物往往遵循這種模式'temp = a; a = b; b = temp;' – gman

+0

我應該創建一個新的像素對象並使用交換公式嗎? –

+0

你有2件事要交換。代碼中的「a」和「b」是圖片兩側的像素 – gman

回答

0

這應該只是一個交易x和y的問題。所以,如果有人在數組上做這個操作,它會看起來像這樣。

int portrait[][] = { {1,2}, {2,4}, {3,6} }; 
int landscape[][] = new int[2][3]; 

for (int row=0; row < portrait.size; row++) { 
    for (int col=0; col < portrait[0].size; col++) { 
     landscape[col][row]=portrait[row][col]; 
    } 
}