Javaで画像を回転または反転する

画像の回転と反転は、画像エディタの重要な機能の1つです。画像を操作したり、Javaで独自の画像エディタを作成したりするときに、これらの機能を実装する必要がある場合があります。これを実現するために、この記事では、Javaでプログラムによって画像を回転および反転する方法を示します。特に、画像の回転、反転、回転と反転を同時に行う方法について説明します。

画像を回転および反転するJavaAPI

Aspose.Imaging for Javaは、さまざまな画像形式を操作できる画像処理APIです。 APIを使用すると、多くのコードを記述せずに画像を操作するのが非常に簡単になります。次のMaven構成を使用して、APIをダウンロードするか、Javaアプリケーションにインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-imaging-java</artifactId>
    <version>21.12</version>
    <classifier>jdk16</classifier>
</dependency>

Javaで画像を回転および反転

画像を特定の角度で回転させることも、標準の回転角度である90度、180度、270度で回転させることもできます。さらに、画像を水平または垂直に反転させることができます。 Aspose.Imaging for Javaは、画像を回転および反転する単一の方法を提供します。 RotateFlipType列挙型は、回転角とフリップタイプを指定するために使用されます。画像に対して次の操作のいずれかを実行できます。

  • 画像を回転させる
  • 画像を反転する
  • 画像の回転と反転を同時に行う

Javaで画像を回転させる

反転せずに画像を回転するには、RotateFlipType列挙型の次の値のいずれかを選択できます。

  • Rotate180FlipNone:反転せずに180度回転
  • Rotate270FlipNone:反転せずに270度回転
  • Rotate90FlipNone:反転せずに90度回転

Javaで画像を270度回転させる方法を見てみましょう。

次のコードスニペットは、Javaで画像を回転させる方法を示しています。

// 画像を読み込む
RasterImage image = (RasterImage) Image.load("image.bmp");

// 画像を回転させる
image.rotateFlip(RotateFlipType.Rotate270FlipNone);

// 画像を保存
image.save("rotated-image.bmp");

以下は、回転後に取得した入力画像(左)と結果の画像(右)です。

Javaで画像を回転させる

画像を回転させる

Javaで画像を反転する

画像を反転するには、次のRotateFlipType値が使用されます。

  • RotateNoneFlipX:水平方向の反転で回転なし
  • RotateNoneFlipY:垂直反転で回転なし
  • RotateNoneFlipXY:水平方向と垂直方向の反転で回転なし

以下は、Javaで画像を反転する手順です。

次のコードサンプルは、画像を反転する方法を示しています。

// 画像を読み込む
RasterImage image = (RasterImage) Image.load("image.bmp");

// 画像を反転します
image.rotateFlip(RotateFlipType.RotateNoneFlipX);

// 画像を保存
image.save("rotated-image.bmp");

以下は、入力画像と結果の反転画像です。

Javaで画像を反転する

画像を反転する

Javaで画像を回転および反転

前のセクションでは、画像を回転または反転する方法を見てきました。ただし、場合によっては、両方の操作を同時に実行する必要があります。これを実現するために、次のRotateFlipType値が使用されます。

  • Rotate180FlipX:水平方向の反転を伴う180度の回転
  • Rotate180FlipXY:水平および垂直方向に反転する180度の回転
  • Rotate180FlipY:垂直反転を伴う180度回転
  • Rotate270FlipX:水平方向の反転を伴う270度の回転
  • Rotate270FlipXY:水平および垂直方向に反転する270度の回転
  • Rotate270FlipY:垂直反転を伴う270度の回転
  • Rotate90FlipX:水平方向の反転を伴う90度の回転
  • Rotate90FlipXY:水平および垂直反転を伴う90度回転
  • Rotate90FlipY:垂直反転を伴う90度回転

以下は、Javaで画像を同時に回転および反転する手順です。

次のコードスニペットは、画像の回転と反転を同時に実行する方法を示しています。

// 画像を読み込む
RasterImage image = (RasterImage) Image.load("image.bmp");

// 画像を回転および反転
image.rotateFlip(RotateFlipType.Rotate180FlipX);

// 画像を保存
image.save("rotated-image.bmp");

以下は、回転と反転を適用した後に得られる結果の画像(右)です。

Javaで画像を回転および反転

画像を回転および反転

特定の角度で画像を回転させる

画像を90、180、270以外の角度で回転させることもできます。このため、APIは回転角をパラメーターとして受け入れるImage.rotate(float angle)メソッドを提供します。次のコードサンプルは、Javaで画像を20度回転する方法を示しています。

// 画像を読み込む
RasterImage image = (RasterImage) Image.load("image.bmp");

// パフォーマンスを向上させるために画像をキャッシュする
if (!image.isCached()) {
  image.cacheData();
}

// 画像サイズを維持しながら20度回転
image.rotate(20f);

// 画像を保存
image.save("rotated-image.bmp");

以下は、上記のコードサンプルの出力です。

Javaで特定の角度で画像を回転させる

無料のAPIライセンスを取得する

無料の一時ライセンスを取得、評価の制限なしにAspose.ImagingforJavaを使用できます。

結論

この記事では、Javaで画像を回転および反転する方法を学習しました。さらに、画像の回転、画像の反転、および画像の回転と反転を同時に行う方法を見てきました。さらに、この記事では、90度、180度、および270度以外の特定の角度で画像を回転させる方法についても説明しました。 Java画像処理APIについて詳しく知りたい場合は、ドキュメントにアクセスしてください。また、APIのソースコードサンプルはGitHubからダウンロードできます。ご不明な点がございましたら、フォーラムまでお問い合わせください。

関連項目