org.opengion.fukurou.util

## クラス ImageResizer

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

-     public class ImageResizer
      extends java.lang.Object

  ImageResizer は、画像ファイルのリサイズを行うためのクラスです。 ここでの使い方は、初期化時に、オリジナルの画像ファイルを指定し、 変換時に各縮小方法に対応したメソッドを呼び出し、画像を変換します。 変換方法としては、以下の3つがあります。 ①最大サイズ(px)指定による変換 縦横の最大サイズ(px)を指定し、変換を行います。 横長の画像については、変換後の横幅=最大サイズとなり、縦幅については、横幅の 縮小率に従って決定されます。 逆に縦長の画像については、変換後の縦幅=最大サイズとなり、横幅については、縦幅の 縮小率に従って決定されます。 ②縦横サイズ(px)指定による変換 縦横の変換後のサイズ(px)を個別に指定し、変換を行います。 ③縮小率指定による変換 "1"を元サイズとする縮小率を指定し、変換を行います。 縮小率は、縦横で同じ縮小率が適用されます。 入力フォーマットとしてはJPEG/PNG/GIFに、出力フォーマットとしてはJPEG/PNGに対応しています。 出力フォーマットについては、出力ファイル名の拡張子より自動的に決定されますが、一般的には サイズが小さくなるjpegファイルを推奨します。 入出力フォーマットについて、対応していないフォーマットが指定された場合は例外が発生します。 また、縦横の出力サイズが入力サイズの縦横よりも両方大きい場合、変換は行われず、入力ファイルが そのままコピーされて出力されます。(拡大変換は行われません)
  バージョン
    4.0
  作成者
    Hiroki Nakamura
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static java.lang.String` | `READER_SUFFIXES`
    `static java.lang.String` | `WRITER_SUFFIXES`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `ImageResizer(java.lang.String in)` 入力ファイル名を指定し、画像縮小オブジェクトを初期化します。

  - ### メソッドのサマリー

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `java.awt.image.BufferedImage` | `cmykToSRGB(java.awt.image.BufferedImage readImage)` BufferedImageをISOCoatedのICCプロファイルで読み込み、RGBにした結果を返します。
    `static java.lang.String` | `getSuffix(java.lang.String fileName)` ファイル名から拡張子(小文字)を求めます。
    `static boolean` | `isReaderSuffix(java.lang.String fileName)` ファイル名から入力画像になりうるかどうかを判定します。
    `static boolean` | `isWriterSuffix(java.lang.String fileName)` ファイル名から出力画像になりうるかどうかを判定します。
    `static void` | `main(java.lang.String[] args)` メイン処理です。
    `void` | `resizeByPixel(java.lang.String out, int maxSize)` 縦横の最大サイズ(px)を指定し、変換を行います。
    `void` | `resizeByPixel(java.lang.String out, int sizeX, int sizeY)` 縦横の変換後のサイズ(px)を個別に指定し、変換を行います。
    `void` | `resizeByRatio(java.lang.String out, double ratio)` "1"を元サイズとする縮小率を指定し、変換を行います。

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

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

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

    - #### READER_SUFFIXES

          public static final java.lang.String READER_SUFFIXES

    - #### WRITER_SUFFIXES

          public static final java.lang.String WRITER_SUFFIXES

  - ### コンストラクタの詳細

    - #### ImageResizer

          public ImageResizer(java.lang.String in)

      入力ファイル名を指定し、画像縮小オブジェクトを初期化します。
      パラメータ:
        `in` - 入力ファイル名
      変更履歴:

        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 から取り出します。

  - ### メソッドの詳細

    - #### resizeByPixel

          public void resizeByPixel(java.lang.String out,
                           int maxSize)

      縦横の最大サイズ(px)を指定し、変換を行います。 横長の画像については、変換後の横幅=最大サイズとなり、縦幅については、横幅の 縮小率に従って決定されます。 逆に縦長の画像については、変換後の縦幅=最大サイズとなり、横幅については、縦幅の 縮小率に従って決定されます。
      パラメータ:
        `out` - 出力ファイル名
        `maxSize` - 変換後の縦横の最大サイズ

    - #### resizeByPixel

          public void resizeByPixel(java.lang.String out,
                           int sizeX,
                           int sizeY)

      縦横の変換後のサイズ(px)を個別に指定し、変換を行います。
      パラメータ:
        `out` - 出力ファイル名
        `sizeX` - 変換後の横サイズ(px)
        `sizeY` - 変換後の縦サイズ(px)

    - #### resizeByRatio

          public void resizeByRatio(java.lang.String out,
                           double ratio)

      "1"を元サイズとする縮小率を指定し、変換を行います。 縮小率は、縦横で同じ縮小率が適用されます。
      パラメータ:
        `out` - 出力ファイル名
        `ratio` - 縮小率

    - #### getSuffix

          public static java.lang.String getSuffix(java.lang.String fileName)

      ファイル名から拡張子(小文字)を求めます。 拡張子 が存在しない場合は、null を返します。
      パラメータ:
        `fileName` - ファイル名
      戻り値:
        拡張子(小文字)。なければ、null
      変更履歴:

        5.6.5.3 (2013/06/28) private ⇒ public へ変更

    - #### isReaderSuffix

          public static final boolean isReaderSuffix(java.lang.String fileName)

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

        5.6.5.3 (2013/06/28) 新規追加
        5.6.6.1 (2013/07/12) getSuffix が null を返すケースへの対応

    - #### isWriterSuffix

          public static final boolean isWriterSuffix(java.lang.String fileName)

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

        5.6.5.3 (2013/06/28) 新規追加
        5.6.6.1 (2013/07/12) getSuffix が null を返すケースへの対応

    - #### cmykToSRGB

          public java.awt.image.BufferedImage cmykToSRGB(java.awt.image.BufferedImage readImage)
                                                  throws java.io.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
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
      変更履歴:

        5.4.3.5 (2012/01/17)
        5.5.3.4 (2012/06/19) ICC_PROFILE の取得先を、ISOcoated_v2_eci.icc に変更

    - #### main

          public static void main(java.lang.String[] args)

      メイン処理です。 Usage: java org.opengion.fukurou.util.ImageResizer [Input Filename] [OutputFilename] [MaxResize]
      パラメータ:
        `args` - 引数文字列配列 入力ファイル、出力ファイル、縦横最大サイズ

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