13.13 SDO_GEOR_UTL.generateColorRamp

形式

SDO_GEOR_UTL.generateColorRamp(
     colorSeeds     IN SDO_GEOR_COLORMAP, 
     rampSteps      IN SDO_NUMBER_ARRAY, 
     cellValueType  IN VARCHAR2 DEFAULT 'integer', 
     interpoParam   IN VARCHAR2 DEFAULT 'method=linear' 
     ) RETURN SDO_GEOR_COLORMAP;

説明

シードとして入力された赤、緑、青およびアルファの値を内挿して、色ランプ(グラデーション)とともにSDO_GEOR_COLORMAPオブジェクトを生成します。

パラメータ

colorSeeds

内挿の開始値と終了値として使用するシード値を含むSDO_GEOR_COLORMAPオブジェクト。それぞれにピクセル値およびRGBA値のセットを含む少なくとも2つのグループを含む必要があります。(RGBA = Red、Green、Blue、Alpha)

rampSteps

各項目が色ランプの各セクションに生成される内挿された値の数を示す配列。各セクションに生成される値の数を示す少なくとも1つの整数値を含む必要があります。

cellValueType

整数値または実値としてセル値を作成するかどうかを示す文字列。このパラメータの可能な値は、integer(デフォルト)またはrealです。

interpoParam

内挿メソッドを指定する文字列。可能な値は、method=linear(デフォルト)およびmethod=cosineです。

使用上のノート

このファンクションは、SDO_GEOR_COLORMAP型のオブジェクトを戻します(「SDO_GEOR_COLORMAPオブジェクト型」を参照)。

色ランプは、各セクションに異なる長さの複数の異なるセクションが含まれる可能性があります。colorSeedsで3つのRGBA値を指定すると、ファンクションは同じ色ランプの2つのセクションを生成します。各セクションの色レベルの数は、rampSteps配列によって制御されます。生成されたカラーマップの色の合計数は、rampSteps配列の値と入力カラーマップ・シードの色数の合計です。個別のセクションを生成するには、colorSeedsパラメータの新しい項目およびrampStepsの新しい項目を挿入します。(rampStepsの値0は、内挿された値をそのセクションで生成する必要がないことを示します。)

次の例では、緑から赤に線形に内挿された256色を含む色ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)

DECLARE
  gr sdo_georaster;
  cmp sdo_geor_colormap;
BEGIN
  select raster into gr from ramp_test where id = 1 for update;

  cmp := sdo_geor_utl.generateColorRamp(   
            colorSeeds => sdo_geor_colormap(
              sdo_number_array(   1,1000),
              sdo_number_array(   0, 255),
              sdo_number_array( 255,   0),
              sdo_number_array(   0,   0),
              sdo_number_array( 255, 255)),
            rampSteps  => sdo_number_array( 254 ),
            cellValueType => 'integer',
            interpoParam  => 'method=linear' );

  sdo_geor.setColorMap( gr, 0, cmp );

  update ramp_test set raster = gr where id = 1;
  commit;
END;

次の例では、緑から青および青から赤に影付き部分を変更する色ランプを生成して適用します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)2つのセクションは、colorSeedsパラメータ値の2番目の項目の青色を共有します。

DECLARE
  gr sdo_georaster;
  cmp sdo_geor_colormap;
BEGIN
  select raster into gr from ramp_test where id = 1 for update;

  cmp := sdo_geor_utl.generateColorRamp(   
            colorSeeds => sdo_geor_colormap(
              sdo_number_array(   1, 500, 1000),
              sdo_number_array(   0,   0,  255),
              sdo_number_array( 255,   0,    0),
              sdo_number_array(   0, 255,    0),
              sdo_number_array( 255, 255,  255)),
            rampSteps  => sdo_number_array( 126, 127 ),
            cellValueType => 'integer',
            interpoParam  => 'method=linear' );

  sdo_geor.setColorMap( gr, 0, cmp );

  update ramp_test set raster = gr where id = 1;
  commit;
END;

次の例では、緑から青に変更するセクションおよび白から赤に変更するセクションとともに256項目の色ランプを生成します。(IDおよびRASTERという名前の列を含むRAMP_TESTという名前の表を仮定します。)

DECLARE
  gr sdo_georaster;
  cmp sdo_geor_colormap;
BEGIN
  select raster into gr from ramp_test where id = 1 for update;

  cmp := sdo_geor_utl.generateColorRamp(   
            colorSeeds => sdo_geor_colormap(
              sdo_number_array(   1, 500,  500, 1000),
              sdo_number_array(   0,   0,  255,  255),
              sdo_number_array( 255,   0,  255,    0),
              sdo_number_array(   0, 255,  255,    0),
              sdo_number_array( 255, 255,  255,  255)),
            rampSteps  => sdo_number_array( 126, 0, 126 ),
            cellValueType => 'integer',
            interpoParam  => 'method=linear' );

  sdo_geor.setColorMap( gr, 0, cmp );

  update ramp_test set raster = gr where id = 1;
  commit;
END;

rampSteps配列(rampSteps => sdo_number_array( 126, 0, 126 );)の値0は、内挿された値が2番目のセクションの生成に必要ないことを示します。