Swing/AffineTransformOp のバックアップソース(No.9)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- バックアップ を表示
- Swing/AffineTransformOp へ行く。
- 1 (2010-01-12 (火) 00:12:17)
- 2 (2010-12-12 (日) 23:16:34)
- 3 (2013-01-02 (水) 14:43:26)
- 4 (2014-12-13 (土) 18:25:37)
- 5 (2015-03-17 (火) 18:22:33)
- 6 (2017-01-05 (木) 14:32:58)
- 7 (2017-09-04 (月) 15:48:42)
- 8 (2018-09-21 (金) 15:53:43)
- 9 (2018-12-13 (木) 18:35:08)
- 10 (2020-11-12 (木) 09:38:40)
- 11 (2022-11-11 (金) 14:48:35)
- 12 (2024-03-10 (日) 20:11:07)
--- category: swing folder: AffineTransformOp title: AffineTransformOpで画像を反転する tags: [AffineTransformOp, BufferedImage, AffineTransform] author: aterai pubdate: 2010-01-11T23:59:17+09:00 description: AffineTransformOpなどを使って、画像の上下反転、左右反転を行います。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTHczsN2NI/AAAAAAAAARM/D8gpa0-KfEI/s800/AffineTransformOp.png --- * 概要 [#summary] `AffineTransformOp`などを使って、画像の上下反転、左右反転を行います。 #download(https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTHczsN2NI/AAAAAAAAARM/D8gpa0-KfEI/s800/AffineTransformOp.png) * サンプルコード [#sourcecode] #code(link){{ int w = bi.getWidth(this); int h = bi.getHeight(this); AffineTransform at = AffineTransform.getScaleInstance(-1d, 1d); at.translate(-w, 0); AffineTransformOp atOp = new AffineTransformOp(at, null); g.drawImage(atOp.filter(bi, null), 0, 0, w, h, this); }} * 解説 [#explanation] 上記のサンプルでは、`AffineTransformOp#filter(...)`メソッドを使用して左右反転した`BufferedImage`を生成しています。 ---- - 上下反転する場合の例: #code{{ AffineTransform at = AffineTransform.getScaleInstance(1d, -1d); at.translate(0, -h); g2.drawImage(bi, at, this); }} * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/geom/AffineTransform.html#getScaleInstance-double-double- AffineTransform#getScaleInstance(...) (Java Platform SE 8)] - [[Shapeの反転>Swing/HorizontalFlip]] * コメント [#comment] #comment #comment