1 | import java.awt.image.BufferedImage; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static BufferedImage verticalReverse(BufferedImage source){ BufferedImage out = new BufferedImage(source.getWidth(), source.getHeight(), source.getType()); for ( int i = 0 ; i < source.getWidth(); i++){ for ( int j = 0 ; j < source.getHeight(); j++){ out.setRGB(i, j, source.getRGB(i, source.getWidth() - j - 1 )); } } return out; } public static BufferedImage horizontalReverse(BufferedImage source){ BufferedImage out = new BufferedImage(source.getWidth(), source.getHeight(), source.getType()); for ( int i = 0 ; i < source.getWidth(); i++){ for ( int j = 0 ; j < source.getHeight(); j++){ out.setRGB(i, j, source.getRGB(source.getHeight() - i - 1 , j)); } } return out; } |
修改前
before

以 verticalReverse(source) 修改後
edit with verticalReverse(source)

以 horizontalReverse(source) 修改後
edit with horizontalReverse(source)

對於 verticalReverse(BufferedImage) 及 horizontalReverse(BufferedImage)
其實可以修改為 reverse(BufferedImage, int) 來處理
利用 int 指定為垂直或水平
例如 final int VERTICAL = 0 及 final int HORIZONTAL = 1
透過 switch 或 if 判斷使用哪一種 reverse 比較有規劃性
沒有留言 :
張貼留言