クラス ImageUtil
- java.lang.Object
-
- org.opengion.fukurou.util.ImageUtil
-
public final class ImageUtil extends java.lang.ObjectImageUtil は、画像ファイル関連の処理を集めたユーティリティクラスです。 ここでは、イメージファイルを BufferedImage にして取り扱います。 また、ImageResizer で処理していた static メソッドや、関連処理、 org.opengion.hayabusa.servlet.MakeImage の主要な処理もこちらに持ってきます。- バージョン
- 6.0.2.3 (2014/10/10)
- 作成者
- Hiroki Nakamura
- 導入されたバージョン:
- JDK6.0,
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static intBOTTOMY軸に対して、テキストを画像の下揃えで表示します。static intCENTERX軸に対して、テキストを画像の中央揃えで表示します。static intLEFTX軸に対して、テキストを画像の左寄せで表示します。static intMIDDLEY軸に対して、テキストを画像の中央揃えで表示します。static java.lang.StringREADER_SUFFIXESstatic intRIGHTX軸に対して、テキストを画像の右寄せで表示します。static intTOPY軸に対して、テキストを画像の上揃えで表示します。static java.lang.StringWRITER_SUFFIXES
-
メソッドの概要
すべてのメソッド staticメソッド concreteメソッド 修飾子とタイプ メソッド 説明 static byte[]byteImage(java.lang.String fin)入力ファイル名を指定し、画像ファイルの byte配列を作成します。static voidchangeColor(java.awt.image.BufferedImage img, java.awt.Color tCol, int mask)色変換を行います。static voidchangeColor(java.awt.image.BufferedImage img, java.awt.Color fCol, java.awt.Color tCol, int mask)色変換を行います。static java.awt.image.BufferedImagecmykToSRGB(java.awt.image.BufferedImage readImage)BufferedImageをISOCoatedのICCプロファイルで読み込み、RGBにした結果を返します。static java.lang.StringgetSuffix(java.lang.String fileName)ファイル名から拡張子(小文字)を求めます。static booleanisReaderSuffix(java.lang.String fileName)ファイル名から入力画像になりうるかどうかを判定します。static booleanisWriterSuffix(java.lang.String fileName)ファイル名から出力画像になりうるかどうかを判定します。static voidmain(java.lang.String[] args)アプリケーションのサンプルです。static java.awt.image.BufferedImagemixImage(java.awt.image.BufferedImage image, java.lang.String text, int xAxis, int yAxis, int maxW, int maxH, java.awt.Font font, java.awt.Color color)画像イメージに、文字列を動的に合成作成して返します。static java.awt.image.BufferedImagemixImage(java.awt.image.BufferedImage image, java.lang.String text, int xAxis, int yAxis, java.awt.Font font, java.awt.Color color)画像イメージに、文字列を動的に合成作成して返します。static java.awt.image.BufferedImagereadFile(java.lang.String fin)入力ファイル名を指定し、画像オブジェクトを作成します。static voidsaveFile(java.awt.image.BufferedImage image, java.lang.String fout)画像オブジェクト と、出力ファイル名を指定し、ファイルに書き込みます。
-
-
-
フィールドの詳細
-
LEFT
public static final int LEFT
X軸に対して、テキストを画像の左寄せで表示します。- 関連項目:
- 定数フィールド値
-
CENTER
public static final int CENTER
X軸に対して、テキストを画像の中央揃えで表示します。- 関連項目:
- 定数フィールド値
-
RIGHT
public static final int RIGHT
X軸に対して、テキストを画像の右寄せで表示します。- 関連項目:
- 定数フィールド値
-
TOP
public static final int TOP
Y軸に対して、テキストを画像の上揃えで表示します。- 関連項目:
- 定数フィールド値
-
MIDDLE
public static final int MIDDLE
Y軸に対して、テキストを画像の中央揃えで表示します。- 関連項目:
- 定数フィールド値
-
BOTTOM
public static final int BOTTOM
Y軸に対して、テキストを画像の下揃えで表示します。- 関連項目:
- 定数フィールド値
-
READER_SUFFIXES
public static final java.lang.String READER_SUFFIXES
-
WRITER_SUFFIXES
public static final java.lang.String WRITER_SUFFIXES
-
-
メソッドの詳細
-
readFile
public static java.awt.image.BufferedImage readFile(java.lang.String fin)
入力ファイル名を指定し、画像オブジェクトを作成します。- パラメータ:
fin- 入力ファイル名- 戻り値:
- 読み込まれた画像オブジェクト(BufferedImage)
- 変更履歴:
- 5.4.3.5 (2012/01/17) CMYK対応, 5.4.3.7 (2012/01/20) FAIでのファイル取得方法変更, 5.4.3.8 (2012/01/24) エラーメッセージ追加, 5.6.5.3 (2013/06/28) 入力画像の形式 を ImageIO から取り出します。, 6.0.2.3 (2014/10/10) ImageResizer から、移植しました。
-
saveFile
public static void saveFile(java.awt.image.BufferedImage image, java.lang.String fout)画像オブジェクト と、出力ファイル名を指定し、ファイルに書き込みます。 ImageIO に指定する formatName(ファイル形式)は、出力ファイル名の拡張子から取得します。 [bmp, gif, jpeg, jpg, png, wbmp] 位がサポートされています。- パラメータ:
image- 出力する画像オブジェクト(BufferedImage)fout- 出力ファイル名- 変更履歴:
- 6.0.2.3 (2014/10/10) 新規作成
-
byteImage
public static byte[] byteImage(java.lang.String fin)
入力ファイル名を指定し、画像ファイルの byte配列を作成します。 ImageIO に指定する formatName(ファイル形式)は、出力ファイル名の拡張子から取得します。 [bmp, gif, jpeg, jpg, png, wbmp] 位がサポートされています。- パラメータ:
fin- 入力ファイル名- 戻り値:
- 読み込まれた画像ファイルの byte配列
- 変更履歴:
- 6.0.2.3 (2014/10/10) 新規作成
- このメソッドは、nullを返しません
-
getSuffix
public static java.lang.String getSuffix(java.lang.String fileName)
ファイル名から拡張子(小文字)を求めます。 拡張子 が存在しない場合は、null を返します。- パラメータ:
fileName- ファイル名- 戻り値:
- 拡張子(小文字)。なければ、null
- 変更履歴:
- 5.6.5.3 (2013/06/28) private ⇒ public へ変更, 6.0.2.3 (2014/10/10) ImageResizer から、移植しました。
-
isReaderSuffix
public static boolean isReaderSuffix(java.lang.String fileName)
ファイル名から入力画像になりうるかどうかを判定します。 コンストラクターの引数(入力画像)や、実際の処理の中(出力画像)で 、変換対象となるかどうかをチェックしていますが、それを事前に確認できるようにします。- パラメータ:
fileName- ファイル名- 戻り値:
- 入力画像として使用できるかどうか。できる場合は、true
- 変更履歴:
- 5.6.5.3 (2013/06/28) 新規追加, 5.6.6.1 (2013/07/12) getSuffix が null を返すケースへの対応, 6.0.2.3 (2014/10/10) ImageResizer から、移植しました。
-
isWriterSuffix
public static boolean isWriterSuffix(java.lang.String fileName)
ファイル名から出力画像になりうるかどうかを判定します。 コンストラクターの引数(入力画像)や、実際の処理の中(出力画像)で 、変換対象となるかどうかをチェックしていますが、それを事前に確認できるようにします。- パラメータ:
fileName- ファイル名- 戻り値:
- 出力画像として使用できるかどうか。できる場合は、true
- 変更履歴:
- 5.6.5.3 (2013/06/28) 新規追加, 5.6.6.1 (2013/07/12) getSuffix が null を返すケースへの対応, 6.0.2.3 (2014/10/10) ImageResizer から、移植しました。
-
changeColor
public static void changeColor(java.awt.image.BufferedImage img, java.awt.Color tCol, int mask)色変換を行います。 変換元の色を、最初のビットから作ります。 なお、スキャンしながら、色変換が行われなかった場合は、逆からスキャンします。 つまり、背景色で輪郭抽出して、外周だけ透明にするという感じです。- パラメータ:
img- 変換対象のBufferedImagetCol- 変換後の色mask- 変換対象の色変動を抑えるためのマスク(0x00f0f0f0など)- 変更履歴:
- 7.0.2.1 (2019/03/04) 元の色をイメージの端から自動取得(白決め打ちでない)属性追加
-
changeColor
public static void changeColor(java.awt.image.BufferedImage img, java.awt.Color fCol, java.awt.Color tCol, int mask)色変換を行います。 例えば、背景色白を、透明に変換するなどです。 ボーダー色は、背景色と異なる色の場合があるため、特別に用意しています。 ボーダーは、画像の周辺、3px を対象とします。- パラメータ:
img- 変換対象のBufferedImagefCol- 変換対象の色tCol- 変換後の色mask- 変換対象の色変動を抑えるためのマスク(0x00f0f0f0など)- 変更履歴:
- 6.0.2.3 (2014/10/10) 新規追加, 7.0.1.0 (2018/10/15) 色変換に、元の色の変動を吸収するマスク属性追加
-
cmykToSRGB
public static java.awt.image.BufferedImage cmykToSRGB(java.awt.image.BufferedImage readImage) throws java.io.IOExceptionBufferedImageを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
- 例外:
java.io.IOException- 入出力エラーが発生したとき- 変更履歴:
- 5.4.3.5 (2012/01/17), 5.5.3.4 (2012/06/19) ICC_PROFILE の取得先を、ISOcoated_v2_eci.icc に変更, 6.0.2.3 (2014/10/10) ImageResizer から、移植しました。(static にして)
-
mixImage
public static java.awt.image.BufferedImage mixImage(java.awt.image.BufferedImage image, java.lang.String text, int xAxis, int yAxis, int maxW, int maxH, java.awt.Font font, java.awt.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 )- 変更履歴:
- 6.0.2.3 (2014/10/10) 新規追加
- このメソッドは、nullを返しません
-
mixImage
public static java.awt.image.BufferedImage mixImage(java.awt.image.BufferedImage image, java.lang.String text, int xAxis, int yAxis, java.awt.Font font, java.awt.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 )- 変更履歴:
- 6.0.2.3 (2014/10/10) org.opengion.hayabusa.servlet.MakeImage から、移植しました。
- このメソッドは、nullを返しません
-
main
public static void main(java.lang.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- 引数文字列配列 入力ファイル、出力ファイル、縦横最大サイズ- 変更履歴:
- 6.4.5.1 (2016/04/28) mainメソッドの起動方法を変更します。, 7.0.1.0 (2018/10/15) 色変換に、元の色の変動を吸収するマスク属性追加, 7.0.2.1 (2019/03/04) 元の色をイメージの端から自動取得(白決め打ちでない)属性追加
-
-