2017-04-19 7 views
2

画像の右上から左下に架空の対角線上に画像を反転する必要があります。これは私がこれまで持っていたものです。 getBasicPixel(x、y)はピクセルのrgbをint値として返します。斜めに画像を反転する

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]; 
    } 
} 
関連する問題