LoginSignup
28
29

More than 5 years have passed since last update.

複数画像から共通部分or非共通部分を抽出するツールをJavaで作った

Posted at

概要

 タイトルの通りです。GIMP等の画像処理ソフトで差分作成は可能すが、正直面倒臭いのでプログラムを書いて済ませます。

ドラッグ&ドロップを実装する

 まずとりあえずUIをどうするかなーっと十数分考えた結果、次のような画面になりました。コマンドライン引数から、同時に読み込む画像数は幾らでも増やせるようにしています。
スクショ
 で、「参照ボタンを毎回押す」だけでも良いと思っていたのですが、ファイル選択ダイアログを押す度に毎回カレントディレクトリが元に戻るのでクソ面倒なことに気づいたので、ドラッグ&ドロップ機能も付加することにしました。
 ドラッグ&ドロップ機能自体は、以前書いたことがあるので楽々実装できたのですが、問題は「どのオブジェクトにドロップされたかを判定するか」でした。その回答としてateraiさんから教えられたのは、TransferHandler.TransferSupport#getComponent()でドロップされたオブジェクトを取得するといったものでした。なるほど……。

結局「共通」「非共通」とは何よ?

 大きく悩んだのはそれぐらいで、その他はつつがなく実装できました。
 処理結果については、次の画像が参考になるでしょう。
説明

GitHubでの配布先はこちら

ソースコードも付いてます!
pic_diff(画像比較&差分出力) Ver.1.0

28
29
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
29