• title: AffineTransformOpで画像を反転する tags: [AffineTransformOp, BufferedImage, AffineTransform] author: aterai pubdate: 2010-01-11T23:59:17+09:00 description: AffineTransformOpなどを使って、画像の上下反転、左右反転を行います。

概要

AffineTransformOpなどを使って、画像の上下反転、左右反転を行います。

サンプルコード

int w = bi.getWidth(this);
int h = bi.getHeight(this);
AffineTransform at = AffineTransform.getScaleInstance(-1.0, 1.0);
at.translate(-w, 0);
AffineTransformOp atOp = new AffineTransformOp(at, null);
g.drawImage(atOp.filter(bi, null), 0, 0, w, h, this);
View in GitHub: Java, Kotlin

解説

上記のサンプルでは、AffineTransformOp#filter(...)メソッドで左右反転したBufferedImageを生成しています。


以下のような方法で上下反転することもできます。

AffineTransform at = AffineTransform.getScaleInstance(1.0, -1.0);
at.translate(0, -h);
g2.drawImage(bi, at, this);

参考リンク

コメント