1. 製品
  2.   画像
  3.   Java
  4.   Apache Commons Imaging
 
  

オープンソースの Java 画像処理と操作

主要なオープンソースの Java 画像編集および操作ライブラリにより、PNG、JPEG、BMP、TIFF、ICO などの広く使用されている形式の読み取り、書き込み、操作、変換が可能になります。.

Apache Commons Imaging とは?

Apache Commons Imaging (旧称 Sanselan) は、Apache Commons プロジェクトで開発された強力なオープンソース Java ライブラリです。より広範な Apache Commons プロジェクトの一部であり、ソフトウェア開発者に外部ライブラリに依存せずにさまざまな画像形式を効率的に読み書きする方法を提供します。ソフトウェア開発者はさまざまな画像形式を処理できるため、画像の読み取りと書き込み、他の形式への変換、画像メタデータの処理、カスタム画像レンダリング、画像カラー モデル、画像操作などのタスクが簡素化されます。このライブラリは柔軟性が高いため、外部依存関係に依存せずに画像処理を必要とするアプリケーションに最適です。このライブラリは、ぼかし、シャープ化、エッジ検出など、さまざまな画像フィルターを提供します。

Apache Commons Imaging は、Java アプリケーションで画像ファイルを操作するプロセスを簡素化する、堅牢で多用途なライブラリです。これは、PNG、JPEG、BMP、GIF、TIFF、ICO など、複数の画像形式をサポートする Java ベースのライブラリです。さらに、ヒストグラム計算、色空間変換、画像セグメンテーションなどの画像分析ツールも提供しています。開発者、研究者、愛好家にとって理想的な選択肢です。このライブラリは、画像操作のための効率的で使いやすい API を提供しており、リソースが制限された環境で特に役立ちます。画像処理を必要とするプロジェクトに取り組んでいる場合でも、単に画像操作を試してみたい場合でも、Apache Commons Imaging は間違いなく検討する価値があります。

Previous Next

Apache Commons Imaging を使い始める

Apache Commons Imaging をインストールするには、Maven リポジトリを使用することをお勧めします。スムーズにインストールするには、次のコマンドを使用してください。

Apache Commons Imaging の Maven リポジトリ

 

<repositories>
	<repository>
	<id>AsposeJavaAPI</id>
	<name>Aspose Java API</name>
	<url>https://releases.aspose.com/java/repo/</url>
	</repository>
</repositories>

//Define Aspose.PDF for Java API Dependency

<dependencies>
	<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-imaging</artifactId>
	<version>1.0.0-alpha5</version>
	</dependency>
</dependencies>

GitHub 経由で Apache Commons Imaging をインストールする

go get -u https://github.com/apache/commons-imaging.git 

ライブラリは、GitHub 製品ページから直接ダウンロードできます。

Java アプリ内での画像変換

ある形式 (例: PNG) で保存された図は、互換性や最適化のために別の形式 (例: BMP または JPEG) に変換する必要がある場合があります。Apache Commons Imaging には変換機能があり、開発者はサポートされている形式間でさまざまな画像ファイル形式を簡単に変換できます。次の例は、ソフトウェア開発者が PNG ファイルを BMP 形式に簡単に変換できることを示しています。このプロセスは簡単で、サポートされている任意の形式間の変換を処理できるため、互換性のために複数の形式で画像を保存する必要のあるアプリケーションに最適です。

Java API を使用して PNG ファイルを BMP ファイル形式に変換する方法


File inputFile = new File("diagram.png");
BufferedImage image = Imaging.getBufferedImage(inputFile);
File outputFile = new File("converted_image.bmp");
Imaging.writeImage(image, outputFile, ImageFormats.BMP, null);

Java ライブラリによる画像操作

Apache Commons Imaging は、BufferedImage などの他の Java ライブラリと組み合わせて使用​​することで、サイズ変更、切り取り、拡大縮小などの一般的な画像変換を実行できます。サイズ変更には別の Java 画像処理ライブラリ (imgscalr) の Scalr.resize() メソッドを使用し、その後 Apache Commons Imaging を使用してサイズ変更された画像を保存します。これにより、高度な画像操作を行うために他の Java ライブラリとシームレスに統合できます。

Java アプリ内で画像のサイズを変更する方法

BufferedImage originalImage = Imaging.getBufferedImage(new File("sample_image.png"));
BufferedImage resizedImage = Scalr.resize(originalImage, 300); // Resize width to 300px

File outputFile = new File("resized_image.png");
Imaging.writeImage(resizedImage, outputFile, ImageFormats.PNG, null);

Java API による画像メタデータの抽出

Apache Commons Imaging の重要な機能の 1 つは、Java アプリケーション内の画像からメタデータを抽出できることです。ダイアグラムの場合、このメタデータには作成日、変更履歴、作成者の詳細などの有用な情報が含まれることがあります。この機能により、開発者はダイアグラム画像を単なる表示にとどまらない方法で処理できます。次の例は、ソフトウェア開発者が Java アプリケーション内の画像からメタデータを抽出する方法を示しています。

Java API 経由で画像からメタデータを抽出する方法

File imageFile = new File("diagram.png");
ImageInfo imageInfo = Imaging.getImageInfo(imageFile);
System.out.println("Format: " + imageInfo.getFormat());
System.out.println("Width: " + imageInfo.getWidth());
System.out.println("Height: " + imageInfo.getHeight());

Java アプリでのカスタム画像レンダリング

ソフトウェア開発者は、Apache Commons Imaging を使用して、Java アプリケーション内で画像をオンザフライで生成したり、既存の画像を変更したりできます。ライブラリを Java のネイティブ Graphics2D と組み合わせると、プログラムで画像に描画したり、注釈を追加したりできます。次のコード例では、空白の画像を作成し、それにテキストを追加して、PNG ファイルとして保存します。Apache Commons Imaging が Java の描画 API と連携して、画像を最初から生成する方法を示しています。

Java で最初から画像を生成するには?

BufferedImage image = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setPaint(Color.WHITE);
graphics.fillRect(0, 0, image.getWidth(), image.getHeight());

graphics.setPaint(Color.BLACK);
graphics.setFont(new Font("Arial", Font.BOLD, 20));
graphics.drawString("Custom Diagram", 100, 150);

graphics.dispose();
File outputFile = new File("custom_image.png");
Imaging.writeImage(image, outputFile, ImageFormats.PNG, null);
 日本