クラス ImageUtil
- java.lang.Object
-
- org.opengion.fukurou.util.ImageUtil
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static int
BOTTOM
Y軸に対して、テキストを画像の下揃えで表示します。static int
CENTER
X軸に対して、テキストを画像の中央揃えで表示します。static int
LEFT
X軸に対して、テキストを画像の左寄せで表示します。static int
MIDDLE
Y軸に対して、テキストを画像の中央揃えで表示します。static String
READER_SUFFIXES
入力画像の形式static int
RIGHT
X軸に対して、テキストを画像の右寄せで表示します。static int
TOP
Y軸に対して、テキストを画像の上揃えで表示します。static String
WRITER_SUFFIXES
出力画像の形式
-
メソッドの概要
すべてのメソッド staticメソッド concreteメソッド 修飾子とタイプ メソッド 説明 static byte[]
byteImage(String fin)
入力ファイル名を指定し、画像ファイルの byte配列を作成します。static void
changeColor(BufferedImage img, Color tCol, int mask)
色変換を行います。static void
changeColor(BufferedImage img, Color fCol, Color tCol, int mask)
色変換を行います。static BufferedImage
cmykToSRGB(BufferedImage readImage)
BufferedImageをISOCoatedのICCプロファイルで読み込み、RGBにした結果を返します。static String
getSuffix(String fileName)
ファイル名から拡張子(小文字)を求めます。static boolean
isReaderSuffix(String fileName)
ファイル名から入力画像になりうるかどうかを判定します。static boolean
isWriterSuffix(String fileName)
ファイル名から出力画像になりうるかどうかを判定します。static void
main(String[] args)
アプリケーションのサンプルです。static BufferedImage
mixImage(BufferedImage image, String text, int xAxis, int yAxis, int maxW, int maxH, Font font, Color color)
画像イメージに、文字列を動的に合成作成して返します。static BufferedImage
mixImage(BufferedImage image, String text, int xAxis, int yAxis, Font font, Color color)
画像イメージに、文字列を動的に合成作成して返します。static BufferedImage
readFile(String fin)
入力ファイル名を指定し、画像オブジェクトを作成します。static void
saveFile(BufferedImage image, String fout)
画像オブジェクト と、出力ファイル名を指定し、ファイルに書き込みます。
-
-
-
フィールドの詳細
-
READER_SUFFIXES
public static final String READER_SUFFIXES
入力画像の形式
-
WRITER_SUFFIXES
public static final String WRITER_SUFFIXES
出力画像の形式
-
-
メソッドの詳細
-
readFile
public static BufferedImage readFile(String fin)
入力ファイル名を指定し、画像オブジェクトを作成します。- パラメータ:
fin
- 入力ファイル名- 戻り値:
- 読み込まれた画像オブジェクト(BufferedImage)
-
saveFile
public static void saveFile(BufferedImage image, String fout)
画像オブジェクト と、出力ファイル名を指定し、ファイルに書き込みます。 ImageIO に指定する formatName(ファイル形式)は、出力ファイル名の拡張子から取得します。 [bmp, gif, jpeg, jpg, png, wbmp] 位がサポートされています。- パラメータ:
image
- 出力する画像オブジェクト(BufferedImage)fout
- 出力ファイル名
-
byteImage
public static byte[] byteImage(String fin)
入力ファイル名を指定し、画像ファイルの byte配列を作成します。 ImageIO に指定する formatName(ファイル形式)は、出力ファイル名の拡張子から取得します。 [bmp, gif, jpeg, jpg, png, wbmp] 位がサポートされています。- パラメータ:
fin
- 入力ファイル名- 戻り値:
- 読み込まれた画像ファイルの byte配列
-
getSuffix
public static String getSuffix(String fileName)
ファイル名から拡張子(小文字)を求めます。 拡張子 が存在しない場合は、null を返します。- パラメータ:
fileName
- ファイル名- 戻り値:
- 拡張子(小文字)。なければ、null
-
isReaderSuffix
public static boolean isReaderSuffix(String fileName)
ファイル名から入力画像になりうるかどうかを判定します。 コンストラクターの引数(入力画像)や、実際の処理の中(出力画像)で 、変換対象となるかどうかをチェックしていますが、それを事前に確認できるようにします。- パラメータ:
fileName
- ファイル名- 戻り値:
- 入力画像として使用できるかどうか。できる場合は、true
-
isWriterSuffix
public static boolean isWriterSuffix(String fileName)
ファイル名から出力画像になりうるかどうかを判定します。 コンストラクターの引数(入力画像)や、実際の処理の中(出力画像)で 、変換対象となるかどうかをチェックしていますが、それを事前に確認できるようにします。- パラメータ:
fileName
- ファイル名- 戻り値:
- 出力画像として使用できるかどうか。できる場合は、true
-
changeColor
public static void changeColor(BufferedImage img, Color tCol, int mask)
色変換を行います。 変換元の色を、最初のビットから作ります。 なお、スキャンしながら、色変換が行われなかった場合は、逆からスキャンします。 つまり、背景色で輪郭抽出して、外周だけ透明にするという感じです。- パラメータ:
img
- 変換対象のBufferedImagetCol
- 変換後の色mask
- 変換対象の色変動を抑えるためのマスク(0x00f0f0f0など)
-
changeColor
public static void changeColor(BufferedImage img, Color fCol, Color tCol, int mask)
色変換を行います。 例えば、背景色白を、透明に変換するなどです。 ボーダー色は、背景色と異なる色の場合があるため、特別に用意しています。 ボーダーは、画像の周辺、3px を対象とします。- パラメータ:
img
- 変換対象のBufferedImagefCol
- 変換対象の色tCol
- 変換後の色mask
- 変換対象の色変動を抑えるためのマスク(0x00f0f0f0など)
-
cmykToSRGB
public static BufferedImage cmykToSRGB(BufferedImage readImage) throws IOException
BufferedImageをISOCoatedのICCプロファイルで読み込み、RGBにした結果を返します。 (CMYKからRBGへの変換、ビット反転) なお、ここでは、外部の ICC_PROFILE(ISOcoated_v2_eci.icc) を利用して、処理速度アップを図りますが、 存在しない場合、標準の、com.sun.media.jai.util.SimpleCMYKColorSpace を利用しますので、エラーは出ません。 ただし、ものすごく遅いため、実用的ではありません。 ISOcoated_v2_eci.icc ファイルは、zip圧縮して、拡張子をjar に変更後、(ISOcoated_v2_eci.jar) javaエクステンション((JAVA_HOME\)jre\lib\ext) にコピーするか、実行時に、CLASSPATHに設定します。- パラメータ:
readImage
- BufferedImageオブジェクト- 戻り値:
- 変換後のBufferedImage
- 例外:
IOException
- 入出力エラーが発生したとき
-
mixImage
public static BufferedImage mixImage(BufferedImage image, String text, int xAxis, int yAxis, int maxW, int maxH, Font font, Color color)
画像イメージに、文字列を動的に合成作成して返します。 描画指定の位置(x,y)は、テキストの左下の位置を、画像イメージの、左上を起点(0,0)とした 位置になります。 maxW , maxH を指定すると、テキストのフォントサイズをその範囲に収まるように自動調整します。- パラメータ:
image
- 合成する元の画像オブジェクトtext
- 描画される文字列xAxis
- テキストが描画される位置のx座標。または、LEFT
,CENTER
,RIGHT
指定で、自動計算する。yAxis
- テキストが描画される位置のy座標。または、TOP
,MIDDLE
,BOTTOM
指定で、自動計算する。maxW
- テキストの最大幅(imageの幅と比較して小さい方の値。0以下の場合は、imageの幅)maxH
- テキストの最大高さ(imageの高さと比較して小さい方の値。0以下の場合は、imageの高さ)font
- 描画されるテキストのフォント。null の場合は、初期値(Dialog.plain,12px)が使われるcolor
- 描画されるテキストの色(Color)。null の場合は、Color.BLACK が使われる- 戻り値:
- 合成された画像オブジェクト(BufferedImage)
- 関連項目:
mixImage( BufferedImage, String, int, int, Font, Color )
-
mixImage
public static BufferedImage mixImage(BufferedImage image, String text, int xAxis, int yAxis, Font font, Color color)
画像イメージに、文字列を動的に合成作成して返します。 描画指定の位置(x,y)は、テキストの左下の位置を、画像イメージの、左上を起点(0,0)とした 位置になります。- パラメータ:
image
- 合成する元の画像オブジェクトtext
- 描画される文字列xAxis
- テキストが描画される位置のx座標。または、LEFT
,CENTER
,RIGHT
指定で、自動計算する。yAxis
- テキストが描画される位置のy座標。または、TOP
,MIDDLE
,BOTTOM
指定で、自動計算する。font
- 描画されるテキストのフォント。null の場合は、初期値(Dialog.plain,12px)が使われるcolor
- 描画されるテキストの色(Color)。null の場合は、Color.BLACK が使われる- 戻り値:
- 合成された画像オブジェクト(BufferedImage)
- 関連項目:
mixImage( BufferedImage, String, int, int, int, int, Font, Color )
-
main
public static void main(String[] args)
アプリケーションのサンプルです。 入力イメージファイルを読み取って、テキストを合成して、出力イメージファイル に書き込みます。 テキストの挿入位置を、X軸、Y軸で指定します。 X軸とY軸には、特別な記号があり、左寄せ、右寄せ等の指示が可能です。 サンプルでは、new Font("Serif", Font.PLAIN, 14); と、new Color(0,0,255);(青色)を固定で渡しています。 Usage: java org.opengion.fukurou.util.ImageUtil 入力ファイル 出力ファイル -mix テキスト X軸 Y軸 [-fname=フォント名 -fstyle=スタイル -fsize=サイズ -color=カラー] X軸 指定(正の値は実際の位置) -1 ・・・ LEFT 左寄せ -2 ・・・ CENTER 中央揃え -3 ・・・ RIGHT 右寄せ Y軸 指定(正の値は実際の位置) -4 ・・・ TOP 上揃え -5 ・・・ MIDDLE 中央揃え -6 ・・・ BOTTOM 下揃え -fname=フォント名(初期値:Serif) Serif , SansSerif , Monospaced , Dialog , DialogInput -fstyle=スタイル(初期値:0:PLAIN)を、数字で選びます。 0:PLAIN , 1:BOLD , 2:ITALIC -fsize=サイズ(初期値:14) フォントサイズを整数で指定します。 -color=カラー 色を表す文字列(BLUE,GREEN か、#808000 などの16bitRGB表記) Usage: java org.opengion.fukurou.util.ImageUtil 入力ファイル 出力ファイル -trans [-color=カラー -alpha=透過率(0-100%)] -color=カラー(初期値:WHITE) 透明色にする色を指定(BLUE,GREEN か、#808000 などの16bitRGB表記) -alpha=透過率(0-100%)(初期値:0) 透過率は、0:透明から100不透明まで指定します。 -mask=元の色にマスクを16進数24Bitで指定します(初期値:00f0f0f0) -useBGColor 透明色にする色を元の一番端の色を使用する(初期値:false)- パラメータ:
args
- 引数文字列配列 入力ファイル、出力ファイル、縦横最大サイズ
-
-