ヘッダーをスキップ
Oracle Multimediaリファレンス
11gリリース1(11.1)
E05683-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

D process( )およびprocessCopy( )のイメージ演算子

この付録では、Oracle Multimediaのprocess( )メソッドおよびprocessCopy( )メソッドで使用されるコマンド・オプション(演算子)について説明します。

使用可能な演算子は、大きく3つのカテゴリに分類されます。各カテゴリの詳細を、次の項で説明します。

「共通の概念」の項では、これらの演算子に共通する概念について説明します。


注意:

サポートされるイメージ・ファイル・フォーマットおよびイメージ圧縮形式は、付録Bで説明します。詳細は、表B-1表B-2および表B-3を参照してください。

これらのメソッドのリファレンス情報は、第5章process( )およびprocessCopy( )を参照してください。

D.1 共通の概念

この項では、すべてのイメージ演算子およびprocess( )メソッドとprocessCopy( )メソッドに共通の概念について説明します。

D.1.1 ソース・イメージおよび宛先イメージ

process( )メソッドおよびprocessCopy( )メソッドは、あるイメージ(ソース・イメージ)を処理して別のイメージ(宛先イメージ)を作成します。process( )メソッドは、ソース・イメージと同じ記憶域に宛先イメージを書き込み、ソース・イメージを上書きします。processCopy( )メソッドは、ソース・イメージと異なる記憶域に宛先イメージを格納します。

D.1.2 process( )およびprocessCopy( )

process( )メソッドとprocessCopy( )メソッドは機能的には同じですが、process( )メソッドは入力元のBLOBに出力を書き込むのに対し、processCopy( )メソッドは別のBLOBに出力を書き込む点が異なります。この2つのメソッドのコマンド文字列オプションは同一で、どちらのメソッドにも使用できます。

この付録の後続の項では、process( )をprocessCopy( )に置き換えて読むことができます。process( )に関する説明は、特に指示がないかぎり、process( )とprocessCopy( )の両方に該当します。

D.1.3 演算子と値

特に指示がないかぎり、process( )の演算子は、<演算子>. = <値>という形式でコマンド文字列に指定します。式の右側を演算子のといい、演算子の適用方法を決定します。

D.1.4 演算子の組合せ

通常、必要に応じて任意の数の演算子を組み合せて、process( )メソッドに渡すコマンド文字列に指定できます。ただし、一部の演算子は、他の演算子が存在する場合のみ、または他の条件が満たされている場合のみサポートされます。たとえば、compressionQuality演算子は、宛先イメージの圧縮形式がJPEGの場合にのみサポートされます。ソース・イメージまたは宛先イメージがロー・ピクセルまたは外部イメージであることが必要な演算子もあります。

演算子を柔軟に組み合せることによって、1つの操作で、イメージ・フォーマットの変更、色数の増減、データの圧縮および結果イメージの切取りまたはスケール変更を行うことができます。複数のコールによってそれらの操作を順次実行するより、大幅に効率的です。

D.2 イメージ・フォーマット演算子

イメージ・フォーマット演算子は、高度に抽象的なレベルで、イメージ記憶域内でのデータのレイアウトを変更するために使用します。これらの演算子は、イメージの意味内容を変更しません。また、宛先イメージに格納可能な量を超える情報がソース・イメージに含まれていないかぎり、イメージの表示上の外観を変更しません。宛先イメージに格納可能な量を超える情報を含むソース・イメージの例を次に示します。

D.2.1 fileFormat

fileFormat演算子は、出力イメージのイメージ・ファイル・タイプ(フォーマット)を決定します。この演算子の値は、新しいファイル・フォーマット名のニーモニックである4文字のコードです。fileFormatイメージ演算子に指定可能な値のリストは、第5章の表5-1を参照してください。ファイル・フォーマットと各ファイル・フォーマットのニーモニック、一般的なファイル拡張子、使用可能な圧縮形式とコンテンツ・フォーマット、その他の主な機能などの基本情報は、付録Bを参照してください。

fileFormat演算子に指定する値によって、process( )の出力に、単独では最も重要な詳細を指定できます。この値は、使用可能なコンテンツ・フォーマットと圧縮形式の種類、圧縮品質が有効かどうか、およびフォーマット固有の演算子が有効かどうかを決定します。

fileFormat演算子がprocess( )コマンド文字列に指定されていない場合、Oracle Multimediaはソース・イメージのファイル・フォーマットを判断し、そのフォーマットをデフォルトのファイル・フォーマット値として使用します。ソース・イメージのファイル・フォーマットが出力をサポートしていない場合、エラーが発生します。ソース・イメージが外部イメージの場合、出力イメージはロー・ピクセルとして書き込まれます。

D.2.2 contentFormat

contentFormat演算子は、イメージのコンテンツ・フォーマットを決定します。コンテンツとは、イメージがサポートする色数およびそのサポート方法です。出力イメージの格納に使用されるファイル・フォーマットによっては、コンテンツ・フォーマットの一部または大部分がサポートされない場合があります。

イメージ・コンテンツ・フォーマットは、次のとおり、大きく2つのカテゴリに分類されます。

  • 直接色(DRCT)イメージ

    直接色イメージでは、追加情報を参照せずに、ピクセル・データに直接色値を指定します。このカテゴリには、モノクロ・イメージ(白黒のみ)、グレースケール・イメージ(グレーの濃淡)およびRGB(トゥルー・カラー)イメージが含まれます。

    直接色イメージのビット深度は、ピクセル・データのサイズを表します。モノクロ・イメージの深度は常に1ビット、グレースケール・イメージの深度は8ビットまたは16ビット(オプションの8ビット・アルファ・チャネルが存在する場合)、RGBイメージの深度は24ビット(通常は、赤、緑、青にそれぞれ8ビット)または32ビット(オプションの8ビット・アルファ・チャネルが存在する場合)です。

  • 参照表(LUT)イメージ

    LUTイメージ(インデックス・カラー・イメージともいう)では、使用可能な色の組合せ表に使用可能な色値を格納し、表のどの色を使用するかをピクセル・データに指定します。

    LUTイメージのビット深度は、ピクセル・データのサイズと参照表内の使用可能な色数の両方を表します。1ビットLUTイメージには1ビットのピクセルおよび2色(2の1乗)、4ビット・イメージには16色(2の4乗)、8ビット・イメージには256色(2の8乗)が使用可能です。通常、色表では使用可能な色を24ビットで表すため、イメージで使用可能な色が16色のみの場合でも、最大1600万色のRGBの組合せのうちで任意の色を各色に使用できます。LUTイメージがアルファ・チャネルをサポートする場合、この表では通常32ビットを使用して各色が表現されます。

    contentFormat演算子がprocess( )メソッドに指定されていない場合、Oracle Multimediaは、ソース・イメージのコンテンツ・フォーマットが宛先イメージのファイル・フォーマットでサポートされている場合は、そのコンテンツ・フォーマットの複製を試行します。サポートされていない場合、宛先イメージのファイル・フォーマットに基づいて、デフォルトのコンテンツ・フォーマットが選択されます。

contentFormat演算子の構文およびオプションを、次の4つの図に示します。

図D-1に、モノクロへのイメージ変換に使用するcontentFormat構文を示します。

イメージをモノクロに変換する際にイメージ出力をより詳細に制御するには、量子化演算子と値ERRORDIFFUSION、ORDEREDDITHERまたはTHRESHOLDを使用します。量子化演算子の詳細は、D.3.7項を参照してください。

図D-1 モノクロ用のcontentFormatの構文図

図D-1の説明が続きます。
「図D-1 モノクロ用のcontentFormatの構文図」の説明

図D-2に、LUTフォーマットへのイメージ変換に使用するcontentFormat構文を示します。

contentFormat構文のビット深度部分によって、最終的なイメージのLUTに含まれる色数が次のとおり決まります。

  • 8ビット・イメージは最大256色をサポートします。

  • 4ビット・イメージは最大16色をサポートします。

  • 1ビット・イメージは最大2色をサポートしますが、各色には任意の24ビットRGB値を使用できます。

contentFormat構文の色部分によって、結果のイメージをRGB値の組合せとグレースケール値のどちらで構成するかが決まります。GRAYとGREYは同じです。オプションのSCALE接尾辞には機能的な効果はありません。

contentFormat構文のA部分とT部分によって、イメージのアルファ(A)値または透過(T)値を保持できます。この透過度構文では、32ビット・イメージをアルファ値または透過値を持つ8ビット・イメージに減色することはできませんが、イメージのファイル・フォーマットを変換する際にアルファ値または透過値を保持することができます。この構文は、透過効果を完全なアルファ効果に変換する場合も使用できます(ただし、出力では透過インデックスのみにアルファ値が適用されます)。

直接色イメージをLUT色イメージに変換する際にイメージ出力をより詳細に制御するには、量子化演算子と値ERRORDIFFUSION、ORDEREDDITHERまたはMEDIANCUTを使用します。量子化演算子の詳細は、D.3.7項を参照してください。

図D-2 LUT用のcontentFormatの構文図

図D-2の説明が続きます。
「図D-2 LUT用のcontentFormatの構文図」の説明

図D-3に、グレースケールへのイメージ変換に使用するcontentFormat構文を示します。

contentFormat構文のビット深度部分によって、グレースケール・イメージ全体のタイプ(8ビットまたは16ビット)が決まります。8ビット・グレースケール・イメージにはアルファ・チャネルを含めることはできませんが、現在、16ビット・グレースケール・イメージにはアルファ・チャネルは必須です。いずれの場合も、DRCTの指定は任意です。これは、非LUTイメージは常に直接色であるためです。GRAYとGREYは同じです。オプションのSCALE接尾辞には機能的な効果はありません。アルファ値の指定(A)は16ビット・グレースケール出力には必須です。この値は、グレースケール・イメージの既存のアルファ・チャネルを保持する場合、または32ビットRGBAイメージからアルファ値を持つグレースケールに減色する場合に使用できます。

量子化演算子は、グレースケールへの変換では無効です。

図D-3 グレースケール用のcontentFormatの構文図

図D-3の説明が続きます。
「図D-3 グレースケール用のcontentFormatの構文図」の説明

図D-4に、直接色へのイメージ変換に使用するcontentFormat構文を示します。

contentFormat構文のビット深度部分によって、直接RGBイメージ全体のタイプ(24ビットまたは32ビット)が決まります。24ビットRGBイメージはアルファ・チャネルを含みませんが、32ビットRGBイメージにはアルファ・チャネルは必須です。いずれの場合も、DRCTの指定は任意です。これは、非LUTイメージは常に直接色であるためです。アルファ値の指定(A)は32ビットRGB出力には必須です。この値の指定によって、32ビットまたは64ビットRGBイメージの既存のアルファ・チャネル、およびRGBに増色される16ビット・グレースケール・イメージのアルファ・チャネルが保持されます。

オプションのピクセル・チャンキング構文を使用すると、イメージに対して、ピクセル単位のバンドのインターリーブ(BIP、チャンク方式ともいう)、ライン単位のバンドのインターリーブ(BIL)またはプレーン単位のバンドのインターリーブ(BSQ、順次バンドまたはプレーナ方式ともいう)を指定できます。構文のこの部分は、RPIX形式でのみサポートされます。

量子化演算子は、直接色への変換には使用しません。

図D-4 直接RGB用のcontentFormatの構文図

図D-4の説明が続きます。
「図D-4 直接RGB用のcontentFormatの構文図」の説明

contentFormat演算子の一般的な使用例を次に示します。

  • 出力イメージがモノクロ(白黒のみ)になるように指定するには、次の文を使用します。

    image1.process('contentFormat=monochrome');
    
  • 出力イメージがRGB参照表(インデックス・カラー)になるように指定するには、次のいずれかの文を使用します。

    image1.process('contentFormat=8bitlutrgb');
    image1.process('contentFormat=8bitlut');
    
  • 出力イメージがグレースケール参照表(インデックス・カラー)になるように指定するには、次の文を使用します。

    image1.process('contentFormat=8bitlutgray');
    
  • 出力イメージがグレースケールになるように指定するには、次のいずれかの文を使用します。

    image1.process('contentFormat=8bitgray');
    image1.process('contentFormat=8bitgreyscale');
    
  • 出力イメージが直接色になるように指定するには、次のいずれかの文を使用します。

    image1.process('contentFormat=24bitrgb');
    image1.process('contentFormat=24bitdrctrgb');
    
  • 出力イメージが直接色および順次バンドになるように指定するには、次の文を使用します。

    image1.process('contentFormat=24bitbsqrgb');
    

D.2.3 compressionFormat

compressionFormat演算子は、イメージ・データの圧縮に使用する圧縮アルゴリズムを決定します。サポートされる圧縮形式の種類は、出力イメージのファイル・フォーマットに大きく左右されます。一部のファイル・フォーマットでは1つの圧縮形式のみをサポートしています。1つのファイル・フォーマットにのみサポートされている圧縮形式もあります。

compressionFormat演算子に使用可能な値のリストは、第5章の表5-1を参照してください。

ニーモニックにRLEという語が含まれるすべての圧縮形式は、ランレングス・エンコーディング圧縮方式です。この圧縮形式は、同一色の領域が大きいイメージにのみ有効です。PACKBITS圧縮タイプはMacintoshシステム用に開発されたランレングス・エンコーディング方式ですが、他のシステムでもサポートされています。この圧縮タイプには、他のランレングス・エンコーディング圧縮形式と同様の制限事項があります。LZWまたはHUFFMANという語が含まれる圧縮形式は、イメージの冗長情報を検査する高度な圧縮方式で、より広範囲なイメージに有効です。FAX3およびFAX4は、FAXデータを圧縮するためのCCITT Group 3およびGroup 4規格で、モノクロ・イメージにのみ有効です。これらすべての圧縮形式は可逆圧縮形式です。この形式では、イメージの圧縮によってデータが廃棄されることはありません。イメージを可逆形式で圧縮した後で展開すると、元のイメージと同じ外観になります。

JPEG圧縮形式は特殊な例です。写真イメージの圧縮用に開発されたJPEG形式は不可逆圧縮形式です。この形式では、通常は、重要でない詳細を廃棄することによってイメージを圧縮します。この形式は写真イメージなどの色数の多いイメージの圧縮用に最適化されているため、多くの場合、線画イメージや類似色の領域が大きいイメージなどのイメージ・タイプでは効果的ではありません。JPEGは、Oracle Multimediaで現在サポートされている唯一の不可逆圧縮形式です。

DEFLATE圧縮タイプはZIP/Deflate方式で、PNGイメージ・ファイル・フォーマットで使用されます。DEFLATE-ADAM7圧縮形式はインターレースありのZIP/Deflate方式で、PNGイメージ・ファイル・フォーマットで使用されます。ASCII圧縮タイプはASCIIエンコーディング、RAW圧縮タイプはバイナリ・エンコーディングで、いずれもPNMイメージ・ファイル・フォーマットで使用されます。

compressionFormat演算子が指定されていない場合、Oracle Multimediaはデフォルトの圧縮形式を使用します。このデフォルトは、通常、NONE(圧縮なし)です。

compressionFormat演算子が指定されず、宛先イメージのファイル・フォーマットがソース・イメージのファイル・フォーマットと異なる場合、宛先イメージのファイル・フォーマットに基づいてデフォルトの圧縮形式が選択されます。デフォルトの圧縮形式は、通常、NONE(圧縮なし)です。

D.2.4 compressionQuality

compressionQuality演算子は、不可逆圧縮形式で圧縮されるイメージの相対的な品質を決定します。この演算子は、可逆圧縮形式では意味を持たないため、JPEG以外の圧縮形式では現在サポートされていません。JPEG圧縮をサポートするファイル・フォーマットには、JFIF、TIFFおよびPICTがあります。

compressionQuality演算子は、最大圧縮(最低の表示品質)から最小圧縮(最高の表示品質)までMAXCOMPRATIO、HIGHCOMP、MEDCOMP、LOWCOMPおよびMAXINTEGRITYの5つの値を受け入れます。MAXCOMPRATIO値を使用すると、イメージ・データを最小の領域に格納できますが、イメージの外観が保持されない場合があります。MAXINTEGRITY値を使用すると、結果イメージが元のイメージにより忠実に保持されますが、格納に必要な領域は大きくなります。また、compressionQuality演算子は、JFIFおよびTIFFファイル・フォーマットに対してのみ0(最低品質)から100(最高品質)の整数値を受け入れます。

compressionQuality演算子のデフォルト値は、JFIFおよびTIFFファイル・フォーマットではLOWCOMP、PICTファイル・フォーマットではMAXINTEGRITYです。

D.3 イメージ処理演算子

Oracle Multimediaでサポートしているイメージ処理演算子は、表示されるイメージの外観を直接変更します。Oracle Multimediaでサポートしているイメージ処理演算子で可能な操作は、すべての可能なイメージ処理操作の一部のみであり、複雑なイメージ解析を実行するユーザー向けではありません。

D.3.1 contrast

contrast演算子は、コントラストの調整に使用します。コントラストは、次のとおり、割合または上限値と下限値を指定して調整できます。

  • 割合の指定

    割合を指定してコントラストを調整するには、次の構文を使用します。

     contrast = <percent1> [<percent2> <percent3>]
    

    割合でコントラストを指定する場合、パラメータを1つまたは3つ指定できます。値を1つ指定した場合、入力イメージのすべての色コンポーネント(グレー、または赤、緑、青)にその値が適用されます。値を3つ指定した場合、percent1がイメージの赤コンポーネント、percent2が緑コンポーネント、percent3が青コンポーネントに適用されます。

    割合値は、イメージの出力可能な範囲全体に割り当てられる入力ピクセル値の割合を示す浮動小数点数です。それ以外の入力値は、強制的にいずれかの極値(0(ゼロ)または最高コントラスト)になります。たとえば、割合値60の場合、入力範囲の中央の60%が色領域の全出力範囲に割り当てられ、入力範囲の下限から20%が強制的にコントラスト0(ゼロ)(グレースケール・イメージの場合は黒)に割り当てられ、入力範囲の上限から20%が強制的に最高コントラスト(グレースケール・イメージの場合は白)に割り当てられます。

  • 上限値および下限値の指定

    下限値および上限値を指定してコントラストを調整するには、次の構文を使用します。

      contrast = <lower1> <upper1> [<lower2> <upper2> <lower3> <upper3>]
    

    下限値および上限値は、全出力範囲に割り当てられる入力ピクセル値の下限と上限を示す整数です。下限より小さい値は強制的にコントラスト0になり、上限より大きい値は強制的に最高コントラストになります。8ビット・グレースケール・イメージおよび24ビットRGBイメージの場合、上限値と下限値の範囲は0から255です。

    このコントラスト・モードでは、値を2つまたは6つ指定できます。値を2つ指定する場合、その上限値と下限値がイメージのすべての色コンポーネントに使用されます。値を6つ指定する場合、lower1とupper1がイメージの赤コンポーネント、lower2とupper2が緑コンポーネント、lower3とupper3が青コンポーネントに適用されます。


    注意:

    グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.2 cut

cut演算子は、元のイメージのサブセットの作成に使用します。cut演算子に指定する値は、ソース・イメージ内の切取りウィンドウの原点座標(x,y)、および切取りウィンドウのピクセル単位の幅と高さです。この演算子は、要求するすべてのスケール変更の前に適用されます。

cut演算子を指定しない場合、ソース・イメージ全体が使用されます。

D.3.3 flip

flip演算子は、イメージの上端の走査線が下端になるように、走査線を逆順に配置します。この演算子には値は不要です。

D.3.4 gamma

gamma演算子は、イメージのガンマ(輝度)を修正します。この演算子には、次の構文を使用して、浮動小数点数値を1つまたは3つ指定します。

gamma = <gamma1> [<gamma2> <gamma3>]

値gamma1、gamma2およびgamma3は、入力イメージに適用されるガンマ指数の分母です。値を1つのみ指定した場合、入力イメージのすべての色コンポーネント(グレー、または赤、緑、青)にその値が適用されます。値を3つ指定した場合、gamma1がイメージの赤コンポーネント、gamma2が緑コンポーネント、gamma3が青コンポーネントに適用されます。

イメージを明るくするには、ガンマ値を1.0より大きい値に設定します。一般的な値の範囲は1.0から2.5です。イメージを暗くするには、ガンマ値を1.0より小さく0(ゼロ)より大きい値に指定します。


注意:

グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.5 mirror

mirror演算子は、イメージの左側のピクセル列が右側になるように、走査線の左右を逆にして配置します。この演算子には値は不要です。

D.3.6 page

page演算子では、複数ページの入力イメージの任意のページを選択できます。値には、処理操作のソース・イメージとして使用する入力ページを指定します。1ページ目の番号は0(ゼロ)、2ページ目は1、のようにページ番号で指定します。

現在、ページ選択はTIFFイメージのみでサポートされています。

D.3.7 quantize

quantize演算子は、イメージのビット深度を変更した場合のcontentFormat演算子の結果に影響します。コンテンツ・フォーマットの変更を明示的に要求する場合、または指定した別の操作でコンテンツ・フォーマットの変更が必要な場合(LUTイメージのスケール変更前に直接色に変換する必要がある場合や、LUTイメージのみをサポートするファイル・フォーマットに変換する場合など)、quantize演算子によって、必要な量子化(色数の削減)の実行方法を指定します。

quantize演算子の値には、次の値のうちの1つを指定します。これらの値は量子化値と呼ばれます。

  • ERRORDIFFUSION

    ERRORDIFFUSION量子化値は、8ビット・グレースケール・イメージをモノクロ・イメージに減色する場合、または24ビットRGBイメージを8ビットLUTイメージへ減色する場合に使用できます。

    ERRORDIFFUSION量子化値を指定すると、既存のピクセルの量子化によって発生した誤差が保持され、隣接するピクセルにその誤差が拡散されます。この量子化では、固定色表が使用されます。ほぼすべての写真イメージで有効な結果が得られますが、合成イメージの場合は不自然な斑点状のノイズが発生する場合があります。このノイズの原因は、既存の量子化方法で使用される固定色参照表です。この表では、RGB色領域全体が統計的に適切に均等化されていますが、多くの場合、少数の色の様々なコントラストを含むイメージには適切に一致しません。結果は、ORDEREDDITHER量子化値を指定した場合より正確ですが、処理はより低速です。

    これはデフォルトの量子化値です。

  • ORDEREDDITHER

    ORDEREDDITHER量子化値は、8ビット・グレースケール・イメージをモノクロ・イメージに減色する場合、または24ビットRGBイメージを8ビットLUTイメージに減色する場合に使用できます。

    ORDEREDDITHER量子化値を指定すると、各ピクセルの近似色が固定色表から検索され、色の置換による影響を最小化するように結果がディザリングされます。ほぼすべてのイメージで適切な結果が得られますが、ディザリング処理によって細部が消失する場合があります。この結果はERRORDIFFUSION量子化値を指定した場合ほど正確ではありませんが、処理はより高速です。

  • THRESHOLD <しきい値>

    THRESHOLD量子化値は、8ビット・グレースケール・イメージをモノクロ・イメージに減色する場合に使用します。

    THRESHOLD量子化値を指定すると、ピクセルのグレースケール値と、量子化値とともに指定したしきい値引数の値が比較され、モノクロ出力値(白または黒)がピクセルに割り当てられます。入力グレースケール値が、指定したしきい値引数以上の場合は出力は白になり、しきい値より小さい場合は黒になります。8ビット・グレースケール・イメージまたは24ビットRGBイメージの場合、グレースケール値255は白を意味し、0(ゼロ)は黒を意味します。

    たとえば、しきい値引数が128の場合、128より小さいすべての入力値は黒になり、イメージのその他の部分は白になります。しきい値が0の場合はイメージ全体が白になり、256の場合はイメージ全体が黒になります(入力イメージが8ビット・グレースケールまたは24ビットRGBの場合)。

    THRESHOLD量子化値は、合成イメージに最も適切に適用されます。ERRORDIFFUSION量子化値およびORDEREDDITHER量子化値を使用すると、写真イメージをモノクロに変換する場合には適切な出力を生成できますが、合成イメージの場合は結果が不明瞭になる場合があります。THRESHOLD量子化値を使用すると、不明瞭にはなりませんが、入力イメージの様々なコントラストの差が表現されなくなります。

  • MEDIANCUT [オプションのサンプリング・レート]

    MEDIANCUT量子化値は、24ビットRGBイメージを8ビットLUTイメージに減色する場合に使用します。

    MEDIANCUT量子化値を使用すると、元のイメージでの使用率に基づいて色を選択することによって、合成イメージなどの一部のイメージに対して、ERRORDIFFUSION量子化値またはORDEREDDITHER量子化値の場合より適切な色表を生成できます。ただし、元のイメージのサイズが大きい場合は分析に時間がかかります。また、一部の写真イメージは、ERRORDIFFUSIONまたはORDEREDDITHERを使用して量子化した方が適切な結果が得られる場合があります。

    MEDIANCUT量子化値には、オプションの整数値の引数を使用して、入力イメージをスキャンして色の使用率統計を収集するときに使用するサンプリング・レートを指定できます。この量子化値引数のデフォルト値は1で、すべての入力ピクセルが調べられます。この引数には、1より大きい値も指定できます。サンプリング・レートnが1より大きい場合、n個のピクセルのうち1つのピクセルが調べられます。

量子化演算子に値と引数を指定する例を次に示します。

image.process('contentformat=8bitlutrbg quantize = mediancut 2');
image.process('contentformat=monochrome quantize = threshold 128');

D.3.8 rotate

rotate演算子は、指定した角度に基づいてイメージ・プレーン内でイメージを回転します。

値には、浮動小数点数を指定する必要があります。正の値を指定すると、右方向に回転します。負の値を指定すると、左方向に回転します。回転後、イメージ・コンテンツが原点(0,0)を基準に変換され、回転後のイメージ・フットプリント範囲外のピクセルに、その色領域の値である黒が適用されます。

回転値が90、180および270の場合、ジオメトリ的な投影なしでピクセルを高速にコピーする特別なコードが使用されるため、操作が高速になります。


注意:

グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.9 スケール変更演算子

Oracle Multimediaは、イメージのスケールを変更する複数の演算子をサポートしています。この項では、それらの演算子について説明します。

D.3.9.1 fixedScale

fixedScale演算子は、縮小イメージなどの、特定のサイズのイメージを簡単に作成するために使用します。scale、xScaleおよびyScaleのすべての演算子には浮動小数点数のスケール変更比率を指定しますが、fixedScale(およびmaxScale)演算子にはピクセル単位のスケール変更値を指定します。

fixedScale演算子には、宛先イメージに適用する寸法(幅と高さ)を示す2つの整数値を指定します。ソース・イメージより大きい寸法または小さい寸法を(または1辺を大きく、もう1辺を小さく)指定できます。

この演算子で使用されるスケール変更方法は、すべての場合にscale演算子で使用される方法と同じです。この演算子は、他のスケール変更演算子と組み合せることはできません。

D.3.9.2 maxScale

maxScale演算子は、fixedScale演算子の変形で、ソース・イメージのアスペクト比(相対的な幅と高さ)を保持します。maxScale演算子にも2つの整数値で寸法を指定しますが、これらの値は、スケール変更後の該当する寸法の最大値として使用されます。最終的な実際の寸法は、指定した値より小さくなる場合があります。

fixedScale演算子と同様に、この演算子も、特定のサイズのイメージを簡単に作成するために使用します。maxScale演算子を使用して作成した縮小イメージは元のイメージと同じアスペクト比になるため、maxScale演算子はfixedScale演算子よりも縮小イメージの作成に適しています。

maxScale演算子は、ソース・イメージのアスペクト比を保持したまま、指定された寸法内に収まるようにソース・イメージのスケールを変更します。アスペクト比が保持されるため、演算子に指定した値に実際に一致しているのは、宛先イメージの寸法の一方のみである場合があります。他方の寸法は、指定した値以下になります。このスケール変更方法は、maxScale演算子によって指定された寸法内に宛先イメージ全体を収めるという制約のもとで、使用可能なスケール変更係数の大きい方を使用してソース・イメージのスケールを変更すると考えることもできます。

cut演算子をmaxScale演算子と組み合せて使用する場合、入力イメージのアスペクト比ではなく切取りウィンドウのアスペクト比が保持されます。

この演算子で使用されるスケール変更方法は、すべての場合にscale演算子で使用される方法と同じです。この演算子は、他のスケール変更演算子と組み合せることはできません。

D.3.9.3 scale

scale演算子は、演算子の値として指定された比率で、イメージを拡大または縮小します。この値が1.0より大きい場合、宛先イメージは大きくなります(拡大)。この値が1.0より小さい場合、宛先イメージは小さくなります(縮小)。この値が1.0の場合はスケールが変更されず、エラーも発生しません。scale演算子がprocess( )メソッドに渡されない場合、ソース・イメージにスケール変更は適用されません。

Oracle Multimediaでは、2つのスケール変更方法が使用されます。1つ目の方法はサンプリングによるスケール変更で、要求された圧縮品質がMAXCOMPRATIOまたはHIGHCOMPの場合か、またはイメージの縦横両方の寸法を拡大する場合にのみ使用されます。このスケール変更方法では、スケール変更アルゴリズムによって計算されたピクセルに最も近いソース・イメージ・ピクセルが選択され、そのピクセルの色が使用されます。この方法は高速ですが、結果のイメージ品質は低くなります。

2つ目のスケール変更方法は平均値計算によるスケール変更で、1つ目の方法が使用される場合以外のすべての場合に使用されます。この方法では、スケール変更アルゴリズムによって計算されたピクセルに近い複数のピクセルが選択され、その平均色が計算されます。この方法は低速ですが、結果のイメージ品質は高くなります。

scale演算子を指定しない場合、デフォルトのスケール変更値1.0が使用されます。この演算子は、他のスケール変更演算子と組み合せることはできません。


注意:

グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.9.4 xScale

xScale演算子はscale演算子に類似していますが、イメージの幅(x寸法)のみに影響します。xScaleとscaleの重要な違いは、xScaleでは、イメージ品質がMAXCOMPRATIOまたはHIGHCOMPに指定された場合、イメージが拡大されるか縮小されるかに関係なく、必ずサンプリングによるスケール変更が使用されることです。

この演算子は、yScale演算子と組み合せて使用して、各軸を個別にスケール変更することができます。その他のスケール変更演算子(scale、fixedScale、maxScale)と組み合せることはできません。


注意:

グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.9.5 yScale

yScale演算子はscale演算子に類似していますが、イメージの高さ(y寸法)のみに影響します。yScaleとscaleの重要な違いは、yScaleでは、イメージ品質がMAXCOMPRATIOまたはHIGHCOMPに指定された場合、イメージが拡大されるか縮小されるかに関係なく、必ずサンプリングによるスケール変更が使用されることです。

この演算子は、xScale演算子と組み合せて使用して、各軸を個別にスケール変更することができます。その他のスケール変更演算子(scale、fixedScale、maxScale)と組み合せることはできません。


注意:

グローバリゼーション・サポートで正しく解釈されるように、すべての浮動小数点の引数を二重引用符("")で囲んでください。

D.3.10 tiled

tiled演算子は、出力イメージを強制的にタイル処理します。この演算子は、TIFFファイル・フォーマットのイメージのみで使用できます。出力されるタイルのサイズは、選択した圧縮形式によって異なります。

D.4 フォーマット固有の演算子

次の演算子は、宛先イメージのファイル・フォーマットがロー・ピクセルまたはBMPF(scanlineOrder演算子のみ)の場合にのみサポートされます。ただし、inputChannels演算子は例外で、ソース・イメージがロー・ピクセルまたは外部イメージの場合にのみサポートされます。ソース・イメージ・フォーマットはロー・ピクセル、BMPFまたは外部イメージであるため、宛先イメージ・フォーマットをfileFormat演算子によって明示的にロー・ピクセルまたはBMPFに指定しても、Oracle Multimediaによってロー・ピクセルまたはBMPFが自動的に選択されても、どちらでもかまいません。

D.4.1 channelOrder

channelOrder演算子は、宛先ロー・ピクセル・イメージ内の赤、緑および青のチャネル(バンド)の相対順序を決定します。この演算子に渡されるニーモニック値内の文字R、GおよびBの順序によって、出力内のこれらのチャネルの順序が決定されます。ロー・ピクセル・イメージのヘッダーには、各チャネルがこの順序どおりに書き込まれます。

ロー・ピクセル・ファイル・フォーマットおよびチャネルの順序付けの詳細は、付録Eを参照してください。

D.4.2 pixelOrder

pixelOrder演算子は、ロー・ピクセル・イメージの走査線内のピクセルの方向を制御します。値NORMALを指定すると、走査線の左端のピクセルが、イメージ・データ・ストリームの先頭になります。値REVERSEを指定すると、走査線の右端のピクセルが先頭になります。

ロー・ピクセル・ファイル・フォーマットおよびピクセルの順序付けの詳細は、付録Eを参照してください。

D.4.3 scanlineOrder

scanlineOrder演算子は、ロー・ピクセル・イメージまたはBMPFイメージ内の走査線の順序を制御します。値にNORMALを指定すると、上端に表示される走査線が、イメージ・データ・ストリームの先頭になります。値INVERSEを指定すると、下端の走査線が先頭になります。BMPFの場合、scanlineOrder = INVERSEがデフォルトであり、一般的な値です。

ロー・ピクセル・ファイル・フォーマットまたはBMPFファイル・フォーマットと、走査線の順序付けの詳細は、付録Eを参照してください。

D.4.4 inputChannels

D.4項で説明したとおり、inputChannels演算子は、ソース・イメージがロー・ピクセル・フォーマットまたは外部イメージの場合にのみサポートされます。

inputChannels演算子は、後のイメージ処理用に、マルチバンド・イメージの個々のバンドを赤、緑および青のチャネルに割り当てます。ソース・イメージ内の任意のバンドを任意のチャネルに割り当てることができます。必要に応じて、1つのバンドのみを指定できます。その場合、選択したバンドはグレースケール・チャネルとして使用され、結果の出力イメージはグレースケールになります。イメージ内の1つ目のバンドの番号は1です。inputChannels演算子に渡すバンド番号は、1以上で、ソース・イメージ内のバンドの合計数以下である必要があります。inputChannels演算子によって選択されたバンドのみが出力に書き込まれます。その他のバンドは、出力イメージがロー・ピクセル・フォーマットの場合でも転送されません。

すべてのロー・ピクセル・イメージまたは外部イメージのヘッダー・ブロックには、これらの入力チャネルの割当てが書き込まれていますが、そのデフォルトの割当てはこの演算子によって上書きされることに注意してください。

ロー・ピクセル・ファイル・フォーマットおよび入力チャネルの詳細は、付録Eを参照してください。