Java画像リサイザーを使用して画像のサイズを変更する

画像エディタは、要件に応じて画像のサイズを変更できるサイズ変更機能を提供します。 Javaアプリケーション内から画像エディタを設計したり、画像を処理したりするときに、プログラムで画像のサイズを変更する必要がある場合があります。これを実現するために、この記事ではJavaで画像のサイズを変更する方法について説明します。さらに、さまざまなサイズ変更手法を使用して画像のサイズを変更する方法も学習します。

画像のサイズを変更するJavaAPI

Aspose.Imaging for Javaは、画像を非常に簡単に操作できるようにする、広く使用されている画像処理APIです。この記事では、このAPIを使用して画像のサイズを変更します。 APIはダウンロードセクションからダウンロードできます。また、pom.xmlで次の構成を使用して、Mavenからインストールできます。

<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でラスター画像のサイズを変更する

Aspose.Imaging for Javaには、ラスターイメージのサイズを変更する2つの方法があります。 1つは、結果の画像の高さと幅を指定する単純なサイズ変更です。一方、2番目の方法では、ランツォシュ再サンプリング、最近傍再サンプリングなど、使用する必要のあるサイズ変更手法についてAPIに通知するサイズ変更タイプも指定します。次のセクションでは、それぞれの実装方法について説明します。画像のサイズを変更するこれらのメソッド。

簡単なサイズ変更で画像のサイズを変更

このサイズ変更方法では、結果の画像のサイズを指定するだけで済みます。以下は、Javaで画像のサイズを変更する手順です。

  • まず、Imageクラスを使用して、サイズを変更する画像を読み込みます。
  • 次に、Image.resize(int, int)メソッドを呼び出して、画像のサイズを変更します。
  • 最後に、Image.save(string)メソッドを使用して結果の画像を保存します。

次のコードスニペットは、画像を指定された高さと幅にサイズ変更します。

// 画像を読み込む
Image image = Image.load("aspose-logo.jpg");

// 新しいディメンションを定義する
image.resize(300, 300);

// 画像を保存
image.save("SimpleResizing_out.jpg");

サイズ変更タイプを使用して画像のサイズを変更

Aspose.Imaging for Javaは、ここにリストされているさまざまなサイズ変更手法を提供します。シナリオに合ったものをお選びいただけます。たとえば、高品質の画像サイズ変更にはLanczos Resamplingをお勧めしますが、動作が遅くなります。ただし、高速サイズ変更には、Nearest Neighbor Resamplingが使用されますが、画像の品質が低下します。以下は、特定のサイズ変更手法を使用して画像のサイズを変更する手順です。

  • まず、Imageクラスを使用して、サイズを変更する画像を読み込みます。
  • 次に、Image.resize(int, int, ResizeType)メソッドを呼び出して、特定の手法を使用して画像のサイズを変更します。
  • 最後に、Image.save(string)メソッドを使用して結果の画像を保存します。

次のコードサンプルは、特定のサイズ変更手法を使用して画像のサイズを変更する方法を示しています。

// 画像を読み込む
Image image = Image.load("aspose-logo.jpg");

// 新しい寸法とサイズ変更タイプを定義する
image.resize(300, 300, ResizeType.LanczosResample);

// 画像を保存
image.save("SimpleResizing_out.jpg");

Javaでのプロポーショナル画像サイズ変更

アスペクト比は、縮小または拡大縮小された結果の画像を回避するために画像のサイズを変更しながら計算されます。ただし、アスペクト比を誤って計算すると、画像が引き伸ばされる可能性があります。このような問題を取り除くために、APIにアスペクト比自体を処理させることができます。以下は、画像のサイズを比例的に変更する手順です。

オーバーロードImage.resizeWidthProportionally(int, ResizeType)およびImage.resizeHeightProportionally(int, ResizeType)メソッドを使用して、画像のサイズを比例的に変更しながら、特定のサイズ変更タイプを指定することもできます。

次のJavaコードサンプルは、画像のサイズを比例的に変更する方法を示しています。

// 画像を読み込む
Image image = Image.load("aspose-logo.jpg");

// 新しいディメンションを定義する
int newWidth = image.getWidth() / 2;
image.resizeWidthProportionally(newWidth);
int newHeight = image.getHeight() / 2;
image.resizeHeightProportionally(newHeight);

// 画像を保存
image.save("SimpleResizing_out.jpg");

Javaでのベクター画像のサイズ変更

ベクター画像のサイズを変更して、PNG、JPEG、GIFなどのラスター画像形式で保存することもできます。次のコードは、Aspose.Imagingを使用してJavaでそれを実現する方法を示しています。

// ベクトル画像を読み込む
try (Image image = Image.load("image.svg"))
{
  	// 新しいディメンションを定義する
	image.resize(image.getWidth() * 10,image.getHeight() * 15);
  
  	// 画像をPNGとして保存
	image.save("Logotype_10_15.png", new PngOptions());
}

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

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

結論

この記事では、Javaでプログラムによって画像のサイズを変更する方法を学びました。さらに、この記事では、ランツォス再サンプリング、最近傍再サンプリングなどのさまざまな手法を使用して画像のサイズを変更する方法について説明しました。さらに、比例画像のサイズ変更とベクトル画像のサイズ変更についても説明します。 ドキュメントにアクセスして、Java画像処理APIの詳細を読むことができます。また、GitHubで入手可能なソースコードサンプルから学ぶことができます。ご不明な点がございましたら、フォーラムまでお問い合わせください。

関連項目