今日は、Java でのグラフィックス プログラミングの基礎を学びます。基本的な図形の描画、色の操作、ペンの操作の基礎を詳しく説明します。現在のプロジェクトの一部としてグラフィックスを作成している場合でも、独自のゲームやアプリの基礎としてグラフィックスを作成している場合でも、プログラムを使用して美しいビジュアルを簡単に作成する方法を探ってみましょう。
この記事では次のトピックについて説明します。
Java グラフィック ライブラリ - 無料ダウンロード
Aspose.Drawing は、2D プログラミングに最も広く使用されているベクター グラフィックス ライブラリの 1 つです。 Java でのグラフィックス プログラミングには Aspose.Drawing for Java API を使用します。プログラマは、このクロスプラットフォーム ライブラリを利用して、2D アプリケーションでテキスト、図形、画像を描画できます。 サポートされているファイル形式のロード、保存、操作が可能です。
API の JAR をダウンロード するか、Maven ベースの Java アプリケーションに次の pom.xml 設定を追加してください。
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-drawing</artifactId>
<version>24.1</version>
</dependency>
</dependencies>
Java でのグラフィックス プログラミング
Java では、曲線、直線、長方形、塗りつぶし領域、楕円、多角形など、さまざまな種類の形状を簡単に描画できます。 API は、これらの形状を描画するためのさまざまなメソッドを提供します。以下の手順に従って、さまざまなベクター グラフィックをプログラムで作成できます。
- Bitmapクラスのオブジェクトを作成します。
- Graphics クラスのオブジェクトをビットマップから初期化します。
- 必要なパラメータを使用して Pen または SolidBrush クラス オブジェクトを定義します。
- Graphics クラスの形状固有のメソッドを使用して、目的の形状を描画します。
- 最後に画像を保存します。
ここで、Java でこれらの手順を実行する方法を見てみましょう。
Java で曲線を描く
次の方法を使用して、円弧、円、楕円、または閉曲線を描画できます。
- 円弧を描くためのdrawArc()メソッド。
- 楕円を描画するにはdrawEllipse()メソッドを使用します。
- 閉曲線を描くためのdrawClosedCurve()メソッド。
- 曲線を描くためのdrawCurve()メソッド。
曲線形状を描画するには、以下の手順に従ってください。
- Bitmap クラスのインスタンスを作成します。
- 新しく作成した Bitmap オブジェクトから fromImage() メソッドを使用して、Graphics クラス オブジェクトを作成します。
- 指定した色とサイズで Pen クラス オブジェクトを定義します。
- その後、drawClosedCurve() メソッドを呼び出して閉曲線を描画します。
- 必要に応じて、上記の手順を繰り返して円弧と楕円を追加します。
- 最後に、save() メソッドを使用して出力イメージを保存します。
次のコード サンプルは、Java で曲線形状を描画する方法を示しています。
// このコード例は、閉じた曲線、円弧、および円を描画する方法を示します。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800);
// ビットマップからグラフィックを初期化する
Graphics graphics = Graphics.fromImage(bitmap);
// 描画するペンを定義する
Pen penBlue = new Pen(Color.getBlue(), 4);
// 曲線を描く
graphics.drawClosedCurve(penBlue, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });
// 円弧を描く
Pen penRed = new Pen(Color.getRed(), 2);
graphics.drawArc(penRed, 0, 0, 700, 700, 0, 180);
// 楕円を描く
Pen penGreen = new Pen(Color.getGreen(), 2);
graphics.drawEllipse(penGreen, 10, 10, 500, 500);
// ビットマップを PNG として保存します
bitmap.save("D:\\Files\\Curves.png");
Java で多角形と四角形を描画する
前述の手順に従って、多角形と長方形を描画できます。ただし、ステップ 4 では次のメソッドを使用する必要があります。
- 多角形を描画するためのdrawPolygon()メソッド。
- 四角形を描画するためのdrawRectangle()メソッド。
次のコード サンプルは、Java で多角形と四角形を描画する方法を示しています。
// このコード例は、多角形と四角形を描画する方法を示します。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800);
// ビットマップからグラフィックを初期化する
Graphics graphics = Graphics.fromImage(bitmap);
// 描画するペンを定義する
Pen penBlue = new Pen(Color.getBlue(), 4);
// 多角形を描く
graphics.drawPolygon(penBlue, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });
// 長方形を描く
Pen penRed = new Pen(Color.getRed(), 2);
graphics.drawRectangle(penRed, 10, 10, 900, 700);
// ビットマップを PNG として保存します
bitmap.save("D:\\Files\\Shapes.png");
Javaで線を描く
同様に、前述の手順に従って線を描画できます。ただし、ステップ 4 でdrawLine() メソッドを使用して線を描画する必要があります。
次のコード サンプルは、Java で線を描画する方法を示しています。
// このコード例は、線を描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800);
// ビットマップからグラフィックを初期化する
Graphics graphics = Graphics.fromImage(bitmap);
// 描画するペンを定義する
Pen pen = new Pen(Color.getBlue(), 4);
// 線を描く
graphics.drawLine(pen, 10, 700, 500, 10);
graphics.drawLine(pen, 500, 10, 990, 700);
// ビットマップを PNG として保存します
bitmap.save("D:\\Files\\Lines.png");
Java でパスを描画する
ベクター グラフィックスのパスは、開始点と終了点、および他の点によって定義される一連の滑らかな直線を表します。以下の手順に従ってパスを描画できます。
- Bitmap クラスのインスタンスを作成します。
- fromImage() メソッドを使用して、新しく作成した Bitmap オブジェクトから Graphics クラス オブジェクトを初期化します。
- 指定した色とサイズで Pen クラス オブジェクトを定義します。
- GraphicsPath クラスのインスタンスを作成します。
- addLine() メソッドを使用して行を追加します。
- その後、Pen オブジェクトと GraphicsPath オブジェクトを使用してdrawPath() メソッドを呼び出します。
- 最後に、save() メソッドを使用して出力イメージを保存します。
次のコード サンプルは、Java でパスを描画する方法を示しています。
// このコード例は、パスを描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800);
// ビットマップからグラフィックを初期化する
Graphics graphics = Graphics.fromImage(bitmap);
// 描画するペンを定義する
Pen pen = new Pen(Color.getBlue(), 4);
// グラフィックスパスの初期化
GraphicsPath path = new GraphicsPath();
// 行 1 を追加
path.addLine(100, 100, 1000, 400);
// 行 2 を追加
path.addLine(1000, 600, 300, 600);
// 長方形の追加
path.addRectangle(new Rectangle(500, 350, 200, 400));
// 楕円の追加
path.addEllipse(10, 250, 450, 300);
// パスを描く
graphics.drawPath(pen, path);
// ビットマップを PNG として保存します
bitmap.save("D:\\Files\\Shapes.png");
Java で塗りつぶし領域を描画する
以下の手順に従って塗りつぶし領域を描画できます。
- Bitmap クラスのインスタンスを作成します。
- fromImage() メソッドを使用して、新しく作成した Bitmap オブジェクトから Graphics クラス オブジェクトを初期化します。
- GraphicsPath クラスのインスタンスを作成します。
- addPolygon() メソッドを使用してポリゴンを追加します。
- リージョン クラスのインスタンスを作成します。
- 別の GraphicsPath オブジェクトを追加し、addRectangle() メソッドを使用して四角形を追加します。
- exclude() メソッドを呼び出して、領域から内部パスを除外します。
- 次に、指定した色で SolidBrush クラス オブジェクトを定義します。
- その後、SolidBrush オブジェクトと GraphicsPath オブジェクトを使用して fillRegion() メソッドを呼び出します。
- 最後に、save() メソッドを使用して出力イメージを保存します。
次のコード サンプルは、Java で塗りつぶされた領域を描画する方法を示しています。
// このコード例は、リージョンを描画する方法を示しています。
// ビットマップを作成する
Bitmap bitmap = new Bitmap(1000, 800);
// ビットマップからグラフィックを初期化する
Graphics graphics = Graphics.fromImage(bitmap);
// ポリゴンを追加する
GraphicsPath path = new GraphicsPath();
path.addPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });
// 領域を初期化する
Region region = new Region(path);
// 内部グラフィックスパス
GraphicsPath innerPath = new GraphicsPath();
// 長方形を追加する
innerPath.addRectangle(new Rectangle(300, 300, 400, 200));
// 内部パスを除外する
region.exclude(innerPath);
// ソリッドブラシを定義する
Brush brush = new SolidBrush(Color.getBlue());
// 塗りつぶし領域
graphics.fillRegion(brush, region);
// ビットマップを PNG として保存します
bitmap.save("D:\\Files\\FillRegion.png");
無料ライセンスを取得する
無料の一時ライセンスを取得して、評価制限なしで Aspose.Drawing for Java を試すことができます。
Java でのグラフィックス プログラミング – 無料リソース
線、パス、四角形の描画に加えて、以下のリソースを使用してライブラリの他のさまざまな機能を探索できます。
結論
この記事では、Aspose.Drawing for Java を使用した Java でのグラフィックス プログラミングの基本を学習しました。 Java でプログラム的に長方形、楕円、線、およびパスを描画する方法を説明しました。また、ビットマップ画像を PNG 画像として作成して保存する方法も学びました。この記事で説明されている手順と提供されているコード例に従うことで、Java アプリケーションで見事なベクター グラフィックスを作成できます。不明な点がある場合は、無料サポート フォーラムまでお気軽にお問い合わせください。