org.opengion.fukurou.util

## クラス ImageUtil

- java.lang.Object
- - org.opengion.fukurou.util.ImageUtil

-     public final class ImageUtil
      extends Object

  ImageUtil は、画像ファイル関連の処理を集めたユーティリティクラスです。 ここでは、イメージファイルを BufferedImage にして取り扱います。 また、ImageResizer で処理していた static メソッドや、関連処理、 org.opengion.hayabusa.servlet.MakeImage の主要な処理もこちらに持ってきます。
  バージョン
    6.0.2.3 (2014/10/10)
  作成者
    Hiroki Nakamura
  導入されたバージョン:
    JDK6.0,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `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 byte[]` | `byteImage(String fin)` 入力ファイル名を指定し、画像ファイルの byte配列を作成します。
    `static void` | `changeColor(BufferedImage img, Color fCol, Color tCol)` ファイル名から入力画像になりうるかどうかを判定します。
    `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, Font font, Color color)` 画像イメージに、文字列を動的に合成作成して返します。
    `static BufferedImage` | `mixImage(BufferedImage image, String text, int xAxis, int yAxis, int maxW, int maxH, Font font, Color color)` 画像イメージに、文字列を動的に合成作成して返します。
    `static BufferedImage` | `readFile(String fin)` 入力ファイル名を指定し、画像オブジェクトを作成します。
    `static void` | `saveFile(BufferedImage image, String fout)` 画像オブジェクト と、出力ファイル名を指定し、ファイルに書き込みます。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### 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 String READER_SUFFIXES

    - #### WRITER_SUFFIXES

          public static final String WRITER_SUFFIXES

  - ### メソッドの詳細

    - #### readFile

          public static BufferedImage readFile(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(BufferedImage image,
                      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(String fin)

      入力ファイル名を指定し、画像ファイルの byte配列を作成します。 ImageIO に指定する formatName(ファイル形式)は、出力ファイル名の拡張子から取得します。 [bmp, gif, jpeg, jpg, png, wbmp] 位がサポートされています。
      パラメータ:
        `fin` - 入力ファイル名
      戻り値:
        読み込まれた画像ファイルの byte配列
      変更履歴:

        6.0.2.3 (2014/10/10) 新規作成

      このメソッドは、nullを返しません

    - #### getSuffix

          public static String getSuffix(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(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(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(BufferedImage img,
                         Color fCol,
                         Color tCol)

      ファイル名から入力画像になりうるかどうかを判定します。 コンストラクターの引数（入力画像）や、実際の処理の中（出力画像）で、 変換対象となるかどうかをチェックしていますが、それを事前に確認できるようにします。
      パラメータ:
        `img` - 変換対象のBufferedImage
        `fCol` - 変換対象の色
        `tCol` - 変換後の色
      変更履歴:

        6.0.2.3 (2014/10/10) 新規追加

    - #### 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` - 入出力エラーが発生したとき
      変更履歴:

        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 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 )`
      変更履歴:

        6.0.2.3 (2014/10/10) 新規追加

      このメソッドは、nullを返しません

    - #### 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 )`
      変更履歴:

        6.0.2.3 (2014/10/10) org.opengion.hayabusa.servlet.MakeImage から、移植しました。

      このメソッドは、nullを返しません

    - #### 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 入力ファイル 出力ファイル テキスト X軸 Y軸 [フォントサイズ] X軸 指定 -1 ･･･ LEFT 左寄せ -2 ･･･ CENTER 中央揃え -3 ･･･ RIGHT 右寄せ Y軸 指定 -4 ･･･ TOP 上揃え -5 ･･･ MIDDLE 中央揃え -6 ･･･ BOTTOM 下揃え
      パラメータ:
        `args` - 引数文字列配列 入力ファイル、出力ファイル、縦横最大サイズ

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.