このページでは,ImageMagick と JMagick と Eclipse を使い, 画像ファイルの書き込みを行う Java プログラムを作る手順を図解で説明する.JMagick のインストール手順も説明する. (画像ファイルの読み出しについては,別の Web ページに例を示している).
【関連する外部ページ】
http://kyle-in-jp.blogspot.com/search/label/JMagick : JMagick を使った画像処理プログラムの見本が載ったすばらしい Web ページ
前もって,Eclipse インストールディレクトリを調べておいてください このページでは,次のように書く.
JMagick の動作には,ImageMagick が必要になります.
ImageMagick とは, 画像ファイルの入出力,画像の編集を行うソフトウェア. その機能は https://imagemagick.org/script/command-line-tools.php に公式ドキュメントがある. ImageMagick には,ImageMagick の機能を C から呼び出すための MagickWand というソフトが同封されている.これを使って,ImageMagick の機能を Java から呼び出すことができる.MagickWand と Java の橋渡しをするのが,JMagick です.
下記の手順で,JMagick のダウンロードサイトから JMagick と ImageMagick をダウンロードします.
※ ImageMagick の Windows 用のバイナリ版は,いろいろなところから配布されているが,KMagic との相性が気になるので, JMagick のダウンロードサイトから入手することにします.
※ 6.4.0 をクリックすると,ソースコードはあるが Window 用のバイナリファイルがない(2009//01時点).
次のファイルをダウンロード.(ImageMagick と JMagick の両方)
解凍して,分かりやすいディレクトリに置いておくこと.展開(解凍)すると次のようなファイルができる.
「Next」をクリック.
ライセンス条項に同意するので「I accept the agreement」をチェックする. その後,「Next」をクリック.
「Next」をクリック.
インストールディレクトリはこのままでよい.「Install」をクリック.
スタートメニューフォルダは,デフォルト (ImageMagick 6.3.9 Q16) のままでよい.「Next」をクリック.
「Install development headers and libraries for C and C++」をチェックし,「Next」をクリック.
「Install」をクリック.
「Next」をクリック.
「Finish」をクリック.
「追加タスクの設定」で,「Update executable search path」のチェックを付けたままにしておいた場合,環境変数 PATH を自動で設定することに注意. 環境変数 PATH の先頭に, 「C:\Program Files\ImageMagick6.3.9;」が自動的に追加される.
Eclipse で,新規プロジェクトの作成,HelloWorld クラス作成を行う.
下記の手順で,プロジェクトを新規に作成する.
プロジェクトを作成すると,ワークスペースのディレクトリ(C:\workspace)の下に, プロジェクトのディレクトリができる.プロジェクトのディレクトリの下には,デフォルトでは,src, bin の2つのサブディレクトリができる.
「ファイル」→「新規 (New)」→「プロジェクト (Project)」
または,プロジェクト・エクスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」
新規プロジェクトのウインドウが開くので, 「Java」を展開する.
展開した「Java」の下にある 「Java プロジェクト」を選び,「次へ」をクリック.
新規Javaプロジェクトのウインドウが開くので,プロジェクト名を付ける(1行目). プロジェクト名には好きにつけて良いが,全角文字は避ける.分かりやすい名前が良い.
Java 設定はデフォルトのままでよい.「終了」をクリック
パースペクティブを開きたいので,「はい」をクリック
パッケージ名は hoge.hoge.com のようなドメイン名を付ける習慣があることに注意してください. このページでは,パッケージ名は,hoge.hoge.com と書き, 作成するクラスのクラス名は,HelloWorld と書く.
「ウインドウ」→「ビューの表示」→「プロジェクト・エクスプローラ」 と操作する.
パッケージの作成,クラスの作成などの作業は,プロジェクト・エクスプローラで行う.
プロジェクト・エクスプローラ(左側のウインドウ)を使って,パッケージを新規作成する.
プロジェクト・エクスプローラ内にプロジェクト一覧が表示されているはずです. 先ほど作成したプロジェクトの中にパッケージを作成したいので, 先ほど作成したプロジェクトのプロジェクト名(つまり HelloWorld)を選んで右クリック.
プロジェクト・エクスプローラ(左側のウインドウ)を使って,クラスを新規作成する.
「新規」→「クラス」と操作する.
※ 「新規」を選んだとき,「クラス」が現れないことがあります. そのときは, 「新規」→「その他」→「Java」→「クラス」と操作する.
Java パッケージ名,クラス名を入力できるウインドウが開くので,設定を行う.
まず,先ほど jmagick-win-6.3.9-Q16.zip を解凍して出来たディレクトリを選ぶ. 右側の「jmagick.dll」をチェックする. 終わったら「完了」をチェックする.
まず,先ほど C:\Program Files\ImageMagick-6.3.9-Q16を選ぶ. 左側に「ImageMagick-6.3.9-Q16」のように表示されるので,左横の「+」をクリックした後, 右側のウインドウに表示されるファイルで,拡張子が dll になっているものをすべて選ぶ. 終わったら「完了」をチェックする.
※ DLL を全てインポートする必要がある.そうしないと,Java プログラムの実行時にエラーが出る.
前準備として,パッケージ hoge.hoge.com とクラス HelloWorld を新規作成済みであること.
プロジェクト・エクスプローラで, プロジェクト名の下の 「Java リソース; src」または「src」の下を展開すると,パッケージ名 hoge.hoge.com の下に,クラスファイル一覧が出ます.
HelloWorld クラスを定義したいので, プロジェクト・エクスプローラの パッケージ名の下にあるクラスファイル一覧の中から, 「HelloWorld.java」をクリック. すると,エディタが現れる.
このように,Eclipse のパッケージエクスプローラで,定義したいクラスの「クラス名.java」 をクリックすると,エディタが開くことになっています.
なお,別のクラスを追加したいときは, パッケージ名を右クリックして「新規」→「クラス」です.
下記のクラス定義をカットアンドペーストしてみて下さい(テスト用に作ったクラス定義です). (パッケージ名を「hoge.hoge.com」と書いているので,パッケージ名を別の名前にしている場合には,適切に読み替えてください).
----------------------ここから--------------------- package hoge.hoge.com; import magick.ImageInfo; import magick.MagickException; import magick.MagickImage; public class HelloWorld { /** * @param args */ public static void main(String[] args) { ImageInfo ii; try { ii = new ImageInfo("label:hoge@hoge.hoge.com"); /* フォント指定 */ ii.setFont("c:\\winnt\\fonts\\msgothic.ttc"); /* ポイントサイズ指定 */ ii.setPointSize(30); /* ラベルに合わせて文字列画像を作成 */ MagickImage mi = new MagickImage(ii); mi.setFileName("sample.png"); mi.writeImage(new ImageInfo()); } catch (MagickException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } } ----------------------ここまで----------------------
このプログラムは,下記のように文字列を画像化した画像ファイルを作るプログラム.ファイル名の「.png」の部分は「.jpg」などに変えることができる.
「ファイル」→「保管」または CTRL+S で保存される. 保存時にコンパイルされる
コンパイル時のエラーや警告があれば, Eclipse 内の問題・ビューに表示されるので確認する.
プロジェクト・エクスプローラで,パッケージ名の下にクラスファイル一覧が出ているので,実行したいクラスの「クラス名.java」 (つまり,HelloWorld.java) を右クリック.
※ もしくはAlt+Shift+Xを押し,J を押すという操作でもよい.
コンソールには何も表示されないが,Eclipse のワークスペースのディレクトリの下に C:\workspace\Hello\sample.png ができる.
※ エラーがあれば,コンソールにエラーメッセージが表示される. DLL を全てインポートする必要があるのに,間違ってもれていた,などの原因が考えられる.