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

戻る
戻る
 
次へ
次へ
 

5 ORDImage

Oracle Multimediaでは、イメージ・データの格納、管理、操作をサポートするORDImageオブジェクト型が記述されます。

ORDImageオブジェクト型は、ordispec.sqlファイルで定義されています。 インストール後、このファイルは次のOracleホーム・ディレクトリに格納されています。

<ORACLE_HOME>/ord/im/admin(LinuxおよびUNIXの場合)

<ORACLE_HOME>\ord\im\admin(Windowsの場合)

Oracle Multimediaには、ORDImageオブジェクト型について次の情報が含まれます。

5.1 ORDImageオブジェクトの例

この章の例では、Product Mediaサンプル・スキーマのONLINE_MEDIA表を使用しています。ご使用のコンピュータでこれらの例を再現するには、まず、ORDImageのコンストラクタ、およびimport( )とimportFrom( )メソッドの項に示す例を実行する必要があります。例に示すイメージ・ファイルは、実際のファイルに置き換えてください。また、ユーザーronがこの例を使用する場合、例の実行前に次の文を発行する必要があります。ここで/mydir/workは、ronがイメージ・データを検索するディレクトリです。

CONNECT /as sysdba
CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work';
GRANT READ ON DIRECTORY FILE_DIR TO 'ron';

サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。


注意:

(BLOBを直接修正するか、または外部ソースを変更して)イメージ・データ自体を操作した場合、オブジェクト属性の同期化が保持され、更新時刻が修正されていることを確認する必要があります。そうしないと、オブジェクト属性がイメージ・データと一致しなくなります。

5.2 重要な注意点

ORDSourceレベルでコールされたメソッドは、ソース・プラグインに渡されて処理され、最初の引数にctx (RAW)を取ります。これらのメソッドのいずれかをクライアントから初めてコールする場合、ctx構造体を割り当ててNULLに初期化してから、openSource( )メソッドをコールする必要があります。このとき、ソース・プラグインによって、このクライアントのコンテキストを初期化できます。処理が完了したら、クライアントからcloseSource( )メソッドをコールする必要があります。

ソース・プラグインのコールによってコールされたメソッドは、最初の引数にctx (RAW)を取ります。


注意:

今回のリリースでは、Oracleが提供するいずれのプラグインもctx構造体を使用しません。また、すべてのソース・プラグインまたはフォーマット・プラグインがctx構造体を使用するわけではありませんが、前述の方法でコーディングすると、アプリケーションは、現行または今後のソース・プラグインまたはフォーマット・プラグインで動作します。

ネイティブにサポートされていないフォーマットの場合、個々のいずれかのsetメソッドを使用して、オブジェクトの属性値を設定する必要があります。ネイティブにサポートされているフォーマットの場合は、setProperties( )メソッドを使用して、オブジェクトの属性を移入するか、またはフォーマット・プラグインを記述します。


ORDImageオブジェクト型

ORDImageオブジェクト型は、イメージ・データの格納、管理および操作をサポートします。 このオブジェクト型の属性は、ordispec.sqlファイルで次のように定義されています。

  -------------------
  -- TYPE ATTRIBUTES
  -------------------
  source              ORDSource,
  height              INTEGER,
  width               INTEGER,
  contentLength       INTEGER,
  fileFormat          VARCHAR2(4000),
  contentFormat       VARCHAR2(4000),
  compressionFormat   VARCHAR2(4000),
  mimeType            VARCHAR2(4000),

属性の説明は次のとおりです。


ORDImageのコンストラクタ

この項では、ORDImageの次のコンストラクタ・ファンクションについて説明します。


ORDImageのinit( )

構文

init( ) RETURN ORDImage;

説明

ORDImageオブジェクト型のインスタンスを初期化します。

パラメータ

なし

プラグマ

なし

例外

なし

使用上の注意

このコンストラクタは、すべてのORDImage属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。

できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDImageオブジェクト型(特に今後のリリースで、ORDImage型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。

ORDImageオブジェクト属性を初期化します。

BEGIN INSERT INTO pm.online_media (product_id, product_photo)  VALUES (3501, ORDSYS.ORDImage.init()); COMMIT;END;/

ORDImageのinit(srcType,srcLocation,srcName)

構文

init(srcType IN VARCHAR2,

srcLocation IN VARCHAR2,

srcName IN VARCHAR2)

RETURN ORDImage;

説明

ORDImageオブジェクト型のインスタンスを初期化します。

パラメータ

srcType

イメージ・データのソース・タイプを指定します。

srcLocation

イメージ・データのソース位置を指定します。

srcName

イメージ・データのソース名を指定します。

プラグマ

なし

例外

なし

使用上の注意

このコンストラクタは、すべてのORDImage属性をNULLに初期化するスタティック・メソッドです。ただし、次の属性は例外です。

できるかぎり早い段階で、init( )メソッドを使用することをお薦めします。これによって、ORDImageオブジェクト型(特に今後のリリースで、ORDImage型が発展するか、または属性が追加された場合)の初期化がさらに簡単になります。この場合、(各オブジェクト属性を初期化する)デフォルト・コンストラクタを使用したために変更されずに残ったINSERT文は、エラーになります。

ORDImageオブジェクト属性を初期化します。

BEGIN
 INSERT INTO pm.online_media (product_id, product_photo)
   VALUES (3515, ORDSYS.ORDImage.init('FILE', 'FILE_DIR','speaker.jpg'));
 COMMIT;
END;
/

ORDImageのメソッド

この項では、特にイメージ・データの操作に使用するOracle Multimediaのメソッドに関するリファレンス情報を示します。

ORDAudio、ORDDoc、ORDImageおよびORDVideoに共通のOracle Multimediaのメソッドに関するリファレンス情報については、第2章を参照してください。この章と第2章で示すメソッドを使用すると、属性の取得と設定、処理操作、およびメタデータの抽出を実行できます。

この項で説明するメソッドは、次のとおりです。


checkProperties( )

構文

checkProperties( ) RETURN BOOLEAN;

説明

イメージ・オブジェクトの属性に格納されたプロパティがイメージのプロパティと一致することを検証します。このメソッドは、外部イメージには使用しないでください(外部イメージは、Oracle Multimediaではネイティブにサポートされていません)。

パラメータ

なし

使用上の注意

このメソッドを使用して、イメージの属性が実際のイメージと一致することを検証します。

プラグマ

なし

例外

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

この例外の詳細は、付録Hを参照してください。

イメージ属性をチェックします。

DECLARE
 image ORDSYS.ORDImage;
 properties_match BOOLEAN;
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- check that properties match the image
 properties_match := image.checkProperties();
 IF properties_match THEN
  DBMS_OUTPUT.PUT_LINE('Check Properties succeeded');
 ELSE
  DBMS_OUTPUT.PUT_LINE('Check Properties failed');
 END IF;
COMMIT;
END;
/

copy( )

構文

copy(dest IN OUT ORDImage);

説明

イメージを変更せずにコピーします。

パラメータ

dest

新しいイメージのコピー先を指定します。

使用上の注意

このメソッドは、すべてのソースおよびイメージ属性を含めて、指定したローカルの宛先イメージにイメージ・データをそのままコピーします。

データがソースにローカルに格納されている場合、このメソッドをコールするとコピー先のsource.localData属性にBLOBがコピーされます。

このメソッドをコールすると、ソース・データがローカルに格納されているかどうかにかかわらず、外部ソース情報が新しいイメージの外部ソース情報にコピーされます。

このメソッドをコールすると、setUpdateTime( )メソッドがコピー先オブジェクトに暗黙的にコールされ、タイムスタンプ情報が更新されます。

プラグマ

なし

例外

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

この例外の詳細は、付録Hを参照してください。

イメージのコピーを作成します。

DECLARE
 image_1 ORDSYS.ORDImage;
 image_2 ORDSYS.ORDImage;
BEGIN
 -- Initialize a new ORDImage object where the copy will be stored:
  INSERT INTO pm.online_media (product_id, product_photo)
  VALUES (3091, ORDSYS.ORDImage.init());
 -- Select the source object into image_1:
 SELECT product_photo INTO image_1 FROM pm.online_media
   WHERE product_id = 3515;
 -- Select the target object into image_2:
 SELECT product_photo INTO image_2 FROM pm.online_media
   WHERE product_id = 3091 FOR UPDATE;
 -- Copy the data from image_1 to image_2:
 image_1.copy(image_2);
 UPDATE pm.online_media SET product_photo = image_2
  WHERE product_id = 3091;
 COMMIT;
END;
/

getCompressionFormat( )

構文

getCompressionFormat( ) RETURN VARCHAR2;

説明

イメージ・オブジェクトのcompressionFormat属性の値を戻します。

パラメータ

なし

使用上の注意

compressionFormat属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getCompressionFormat, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージの圧縮タイプを取得します。

DECLARE
 image ORDSYS.ORDImage;
 compression_format VARCHAR2(4000);
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image compression format:
 compression_format := image.getCompressionFormat();
 DBMS_OUTPUT.PUT_LINE('Compression format is ' || compression_format);
 COMMIT;
END;
/

getContentFormat( )

構文

getContentFormat( ) RETURN VARCHAR2;

説明

イメージ・オブジェクトのcontentFormat属性の値を戻します。

パラメータ

なし

使用上の注意

contentFormat属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getContentFormat, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージのコンテンツ・タイプを取得します。

DECLARE
 image ORDSYS.ORDImage;
 content_format VARCHAR2(4000);
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image content format:
 content_format := image.getContentFormat();
 DBMS_OUTPUT.PUT_LINE('Content format is ' || content_format);
 COMMIT;
END;
/

getContentLength( )

構文

getContentLength( ) RETURN INTEGER;

説明

イメージ・オブジェクトのcontentLength属性の値を戻します。

パラメータ

なし

使用上の注意

contentLength属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getContentLength, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージのコンテンツ長を取得します。

DECLARE
 image ORDSYS.ORDImage;
 content_length INTEGER;
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image size:
 content_length := image.getContentLength();
 DBMS_OUTPUT.PUT_LINE('Content length is ' || content_length);
 COMMIT;
END;
/

getDicomMetadata( )

構文

getDicomMetadata(optionString IN VARCHAR2) RETURN XMLType ;

説明

ORDImageオブジェクトに格納されているDICOMイメージから抽出されたメタデータのXML表現を戻します。DICOMで使用するXMLスキーマの詳細は、付録Fを参照してください。

パラメータ

optionString

抽出するDICOMメタデータのタイプを指定する文字列です。今回のリリースで有効な値は、imageGeneralのみです。その他のすべての値は無視されます。

使用上の注意

DICOM規格は、バイナリ・ストリームでのDICOMオブジェクトのエンコーディングに関する様々な規定を定義しています。Oracle MultimediaでサポートされているDICOMエンコーディング規則の詳細は、付録Gを参照してください。

Oracle Multimedia DICOMの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_LOCAL_DATA

この例外は、source.localData属性の値がNULLの場合に発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

DECLARE
    local_image ORDSYS.ORDIMAGE;
    local_id INTEGER;
    dicom_metadata XMLType := NULL;

BEGIN
    SELECT image INTO local_image FROM medicalImages WHERE id = 1;
    dicom_metadata := local_image.getDicomMetadata('imageGeneral');
    IF (dicom_metadata is NULL) THEN
        DBMS_OUTPUT.PUT_LINE('dicom metadata is NULL');
    END IF;

    -- print the value of the one of the elements in extracted
    -- dicom metadata

    DBMS_OUTPUT.PUT_LINE('namespace: ' || dicom_metadata.getNamespace() );

    EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.NULL_LOCAL_DATA THEN
       DBMS_OUTPUT.PUT_LINE('source local data is null ');
    WHEN ORDSYS.ORDImageExceptions.NULL_SOURCE THEN
       DBMS_OUTPUT.PUT_LINE('source is null ');
    WHEN OTHERS THEN
       RAISE;
END;/

getFileFormat( )

構文

getFileFormat( ) RETURN VARCHAR2;

説明

イメージ・オブジェクトのfileFormat属性の値を戻します。

パラメータ

なし

使用上の注意

fileFormat属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getFileFormat, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージのファイル・タイプを取得します。

DECLARE
 image ORDSYS.ORDImage;
 file_format VARCHAR2(4000);
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image file format:
 file_format := image.getFileFormat();
 DBMS_OUTPUT.PUT_LINE('File format is ' || file_format);
COMMIT;
END;
/

getHeight( )

構文

getHeight( ) RETURN INTEGER;

説明

イメージ・オブジェクトのheight属性の値を戻します。

パラメータ

なし

使用上の注意

hight属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getHeight, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージの高さを取得します。

DECLARE
 image ORDSYS.ORDImage;
 height INTEGER;
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image height:
 height := image.getHeight();
 DBMS_OUTPUT.PUT_LINE('Height is ' || height);
 COMMIT;
END;
/

getMetadata( )

構文

getMetadata(metadataType IN VARCHAR2 DEFAULT 'ALL' ) RETURN XMLSequenceType ;

説明

指定したタイプのメタデータをイメージから抽出し、スキーマが妥当なXML文書の配列を戻します。一致するメタデータが検出されなかった場合は、空の配列が戻されます。

パラメータ

metadataType

抽出する埋込みメタデータのタイプを指定する文字列です。有効な値は、ALL、ORDIMAGE、XMP、EXIFおよびIPTC-IIMです。デフォルト値はALLです。

使用上の注意

入力パラメータmetadataTypeの値がALLで、複数のタイプのサポートされるメタデータがイメージに存在する場合、このメソッドは複数のXML文書(検出されたメタデータのタイプごとに1つ)を戻します。入力パラメータの値が他の値の場合、このメソッドは0(ゼロ)または1つのXML文書を戻します。

各文書は、XMLTypeのインスタンスとして格納され、いずれかのメタデータ・スキーマに基づいていてます。メソッドXMLType.getNamespace( )を使用して、文書に記述されるメタデータのタイプを定義できます。

サポートされるメタデータ・スキーマの詳細は、付録Fを参照してください。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_LOCAL_DATA

この例外は、source.localData属性の値がNULLの場合に発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

DECLARE
  image ORDSYS.ORDImage;
  metav XMLSequenceType;
BEGIN
  SELECT product_photo
  INTO image
  FROM pm.online_media
  WHERE product_id = 3106;

  metav := image.getMetadata('ALL');

  -- print the namespace of each metadata document
  FOR i in 1..metav.count LOOP
    DBMS_OUTPUT.PUT_LINE('namespace: ' || metav(i).getNamespace() );
  END LOOP;

  EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.NULL_LOCAL_DATA THEN
    DBMS_OUTPUT.PUT_LINE('source local data is null');
  WHEN ORDSYS.ORDImageExceptions.NULL_SOURCE THEN
    DBMS_OUTPUT.PUT_LINE('source is null');
  WHEN OTHERS THEN
    RAISE;
END; /

getWidth( )

構文

getWidth( ) RETURN INTEGER;

説明

イメージ・オブジェクトのwidth属性の値を戻します。

パラメータ

なし

使用上の注意

width属性に直接アクセスすると、ORDImageオブジェクトの内部表現を変更してしまう可能性があるため、それを避けるためにこのメソッドを使用します。

プラグマ

PRAGMA RESTRICT_REFERENCES(getWidth, WNDS, WNPS, RNDS, RNPS)

例外

なし

イメージの幅を取得します。

DECLARE
 image ORDSYS.ORDImage;
 width INTEGER;
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515;
 -- Get the image width:
 width := image.getWidth();
 DBMS_OUTPUT.PUT_LINE('Width is ' || width);
 COMMIT;
END;
/

import( )

構文

import(ctx IN OUT RAW);

説明

外部イメージ・データ・ソースからデータベース内の(埋込みORDSourceオブジェクトの)localData属性にイメージ・データを転送します。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、5.2項を参照してください。

使用上の注意

import( )メソッドをコールする前に、setSource( )メソッドを使用して、外部イメージ・データ・ソースの(埋込みORDSourceオブジェクトの)source.srcType、source.srcLocationおよびsource.srcName属性を設定します。

source.srcType属性の値がfileの場合、このメソッドを使用する前に、ディレクトリが存在するか、または作成されていることを確認する必要があります。

外部イメージ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートした後も、ソース情報は変更されません(データのインポート元のソースを指したままです)。

このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。

インポートしたイメージのファイル・フォーマットに、「OTHER」で始まる文字列が事前に設定されていない場合は、setProperties( )メソッドもコールされます。外部イメージ用にsetProperties( )メソッドをコールすると、外部イメージ・フォーマット用に「OTHER」で始まる文字列がファイル・フォーマットに設定されます。

このメソッドは、ORDSourceレベルでコールされます。このレベルでは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データがインポートされます。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用します。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。

UTL_HTTP PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

ORDSourceExceptions.INCOMPLETE_SOURCE_INFORMATION

この例外は、import( )メソッドをコールし、source.srcType属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

この例外は、import( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

外部イメージ・データ・ソースからローカル・ソースにイメージ・データをインポートします。

DECLARE
 obj ORDSYS.ORDImage;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_photo INTO obj FROM pm.online_media p
  WHERE p.product_id  = 3515 FOR UPDATE;
 DBMS_OUTPUT.PUT_LINE('getting source');
 DBMS_OUTPUT.PUT_LINE('--------------------------');
 -- Get source information
 DBMS_OUTPUT.PUT_LINE(obj.getSource());
 -- Import data
 obj.import(ctx);
 -- Check size
 DBMS_OUTPUT.PUT_LINE('Length is ' || obj.getContentLength());
 UPDATE pm.online_media p SET p.product_photo = obj WHERE p.product_id = 3515;
 COMMIT;
END;
/

importFrom( )

構文

importFrom(ctx IN OUT RAW,

source_type IN VARCHAR2,

source_location IN VARCHAR2,

source_name IN VARCHAR2);

説明

指定された外部イメージ・データ・ソースからデータベース内の(埋込みORDSourceオブジェクトの)source.localData属性にイメージ・データを転送します。

パラメータ

ctx

ソース・プラグインのコンテキスト情報を指定します。このパラメータは、常に割り当てて、NULLに初期化する必要があります。ユーザー定義のソース・プラグインを使用する場合は、openSource( )メソッドをコールします。詳細は、5.2項を参照してください。

source_type

ソース・イメージ・データのタイプを指定します。

source_location

インポート元のソース・イメージ・データの位置を指定します。

source_name

ソース・イメージ・データの名前を指定します。

使用上の注意

このメソッドは、ソース情報を個別に指定せずにパラメータで指定すること以外は、import( )メソッドと同じです。

source_typeパラメータの値がfileの場合、このメソッドを使用する前に、ディレクトリが存在するか、または作成されていることを確認する必要があります。

外部イメージ・データ・ソースからローカル・ソース(Oracle Database内)にデータをインポートすると、(データのインポート元のソースを指している)ソース情報は入力値に設定されます。

このメソッドをコールすると、setUpdateTime( )およびsetLocal( )メソッドが暗黙的にコールされます。

インポートしたイメージのファイル・フォーマットに、「OTHER」で始まる文字列が事前に設定されていない場合は、setProperties( )メソッドもコールされます。外部イメージ用にsetProperties( )メソッドをコールすると、外部イメージ・フォーマット用に「OTHER」で始まる文字列がファイル・フォーマットに設定されます。

このメソッドは、ORDSourceレベルでコールされます。このレベルでは、PL/SQL UTL_HTTPパッケージを使用して、HTTPデータ・ソースからメディア・データがインポートされます。環境変数を使用して、UTL_HTTPパッケージのプロキシの動作を指定できます。たとえば、LinuxおよびUNIXの場合、環境変数http_proxyをURLに設定すると、UTL_HTTPパッケージはそのURLをHTTPリクエスト用のプロキシ・サーバーとして使用します。環境変数no_proxyをドメイン名に設定すると、HTTPプロキシ・サーバーは指定したドメイン内のURLには使用されません。

UTL_HTTP PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

ORDSourceExceptions.METHOD_NOT_SUPPORTED

この例外は、importFrom( )メソッドをコールし、使用するソース・プラグインがこのメソッドをサポートしていない場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

指定した外部データ・ソースからローカル・ソースにイメージ・データをインポートします。

DECLARE
 obj ORDSYS.ORDImage;
 ctx RAW(64) :=NULL;
BEGIN
 SELECT p.product_photo INTO obj FROM pm.online_media p
  WHERE p.product_id  = 3501 FOR UPDATE;
 -- set source to a file
 -- import data
 obj.importFrom(ctx,'file','FILE_DIR','speaker.jpg');
 -- check size
 DBMS_OUTPUT.PUT_LINE('Length is ' || obj.getContentLength());
 DBMS_OUTPUT.PUT_LINE('Source is ' || obj.getSource());
 UPDATE pm.online_media p SET p.product_photo = obj WHERE p.product_id = 3501;
 COMMIT;
END;
/

process( )

構文

process(command IN VARCHAR2);

説明

BLOB上でイメージ処理操作を実行し、イメージを上書きします。

パラメータ

command

実行するイメージ処理操作のリストを指定します。

使用上の注意

このメソッドをコールしても、import( )またはimportFrom( )の暗黙的なコールは実行されません。データが外部に存在する場合、処理の前にまずimport( )またはimportFrom( )メソッドをコールして、データをローカルに移す必要があります。

process( )メソッドをコールすると、setProperties( )、setUpdateTime( )およびsetMimeType( )メソッドが暗黙的にコールされます。

表5-1に示す1つ以上のイメージ属性を変更できます。

表5-1 イメージ処理演算子

演算子名 用途

compressionFormat

指定された圧縮フォーマットが出力ファイル・フォーマットでサポートされている場合、その圧縮フォーマットで強制的に出力します。(D.2.3項を参照してください。)

JPEG、SUNRLE、BMPRLE、TARGARLE、LZW、LZWHDIFF、FAX3、FAX4、HUFFMAN3、PACKBITS、GIFLZW、ASCII、RAW、DEFLATE、NONE

compressionQuality

不可逆圧縮の品質を指定します。JPEGのみに有効です。(D.2.4項を参照してください。)

MAXCOMPRATIO、MAXINTEGRITY、LOWCOMP、MEDCOMP、HIGHCOMP、または0から100の整数値

contentFormat

イメージ・コンテンツのフォーマットを指定します。(D.2.2項を参照してください。)

(値の詳細は、D.2.2項を参照してください。)

contrast

イメージのコントラストを調整します。(D.3.1項を参照してください。)1  

FLOAT(負ではない数)2  、FLOAT FLOAT FLOAT(負ではない数)3  、FLOAT FLOAT(負ではない数)4  、FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT(負ではない数)5  

cut

カットまたはトリミングするウィンドウ(起点.x 起点.y 幅 高さ)を定義します。xまたはyの最初のピクセルは0(ゼロ)です。イメージの内側でウィンドウを定義する必要があります。(D.3.2項を参照してください。)

INTEGER INTEGER INTEGER INTEGER(負ではない数)。最大値は2147483648。

fileFormat

指定されたファイル・フォーマットで強制的に出力します。(D.2.1項を参照してください。)

BMPF、CALS、GIFF、JFIF、PBMF、PGMF、PICT、PNGF、PNMF、PPMF、RASF、RPIX、TGAF、TIFF、WBMP

fixedScale

ピクセル単位で指定されたサイズ(幅、高さ)にイメージを変更します。他のスケール演算子と組み合せることはできません。(D.3.9.1項を参照してください。)

INTEGER INTEGER(正の数)

flip

イメージの走査線を逆(下から上)に順序付けします。(D.3.3項を参照してください。)

引数なし

gamma

イメージのガンマ(輝度)を調整します。(D.3.4項を参照してください。)6  

FLOAT(正の数)7  、FLOAT FLOAT FLOAT(正の数)8  

maxScale

アスペクト比を保持したまま、ピクセル単位で指定されたサイズ(幅、高さ)にイメージを変更します。他のスケール演算子と組み合せることはできません。(D.3.9.2項を参照してください。)

INTEGER INTEGER(正の数)

mirror

イメージの列を逆(右から左)に順序付けします。(D.3.5項を参照してください。)

引数なし

page

複数ページのファイルでページを選択します。TIFFのみに有効です。最初のページは0(ゼロ)です。(D.3.6項を参照してください。)

INTEGER(負ではない数)

quantize

イメージのビット深度を下げる際にイメージを量子化する方法を指定します。(D.3.7項を参照してください。)

ERRORDIFFUSION(デフォルト)、ORDEREDDITHER、THRESHOLD、MEDIANCUT

rotate

イメージ・プレーン内で、指定された角度にイメージを回転します。(D.3.8項を参照してください。)9  

FLOAT

scale

イメージを係数(0.5、2.0など)によって均等にスケール変更します。他のスケール演算子と組み合せることはできません。(D.3.9.3項を参照してください。)10  

FLOAT(正の数)

tiled

出力イメージを強制的にタイル処理します。TIFFのみに有効です。(D.3.10項を参照してください。)

引数なし

xScale

イメージを係数(デフォルトは1)によってX軸方向にスケール変更します。イメージのスケール変更の比率は均等ではありません。yScale演算子とのみ組み合せて使用できますが、それ以外のスケール演算子と組み合せることはできません。(D.3.9.4項を参照してください。)11  

FLOAT(正の数)

yScale

イメージを係数(デフォルトは1)によってY軸方向にスケール変更します。イメージのスケール変更の比率は均等ではありません。xScale演算子とのみ組み合せて使用できますが、それ以外のスケール演算子と組み合せることはできません。(D.3.9.5項を参照してください。)12  

FLOAT(正の数)


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

2  すべてのバンドに適用されるコントラスト強調の度合い(パーセント単位)を指定します(GRAYまたはRGB)。

3  各バンドに適用されるコントラスト強調の度合い(パーセント単位)を指定します(RGBのみ)。

4  すべてのバンドに適用されるコントラスト強調の境界を指定します(GRAYまたはRGB)。

5  各バンドに適用されるコントラスト強調の境界を指定します(RGBのみ)。

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

7  すべてのバンドに適用されるガンマ値を指定します(GRAYまたはRGB)。

8  各バンドに適用される個々のガンマ値を指定します(RGBのみ)。

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

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

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

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


注意:

セッションのNLS_TERRITORY設定に基づいて浮動小数点数値が解釈されるように、値を二重引用符("")で囲んでください。たとえば、AMERICAN地域では'scale="0.7"'を、FRENCH地域では'scale="0,7"'を使用します。

表5-2には、ロー・ピクセルおよび外部イメージに対してのみ追加で変更可能な演算子を示します。

表5-2 ロー・ピクセルおよび外部イメージの追加イメージ処理演算子

演算子名 用途

channelOrder

イメージ内の赤、緑および青チャネル(バンド)の相対的な位置を示します。出力チャネルの順序を変更します。RPIXのみに有効です。(D.4.1項を参照してください。)

RGB(デフォルト)、RBG、GRB、GBR、BRG、BGR

inputChannels

マルチバンド・イメージで、1つの整数(グレースケール)、または赤(第1)、緑(第2)および青(第3)に割り当てるチャネルを示す3つの整数を指定します。この演算子はコピー先ではなくソース・イメージに影響することに注意してください。RPIXのみに有効です。(D.4.4項を参照してください。)

INTEGER(正の数)1  、INTEGER INTEGER INTEGER(正の数)2  

pixelOrder

ピクセルの方向を強制します。NORMALの場合、イメージの左端のピクセルが先頭になります。RPIXのみに有効です。(D.4.2項を参照してください。)

NORMAL(デフォルト)、REVERSE

scanlineOrder

走査線の方向を強制します。NORMALの場合、イメージの上端の走査線が先頭になります。RPIXおよびBMPFのみに有効です。(D.4.3項を参照してください。)

NORMAL(デフォルト)、INVERSE


1  入力イメージから1つのバンドを選択して、そのバンドがグレースケール出力イメージの作成に使用されるように指定します。

2  入力イメージから3つのバンドを選択して、それらのバンドがRGB出力イメージの赤、緑および青バンドに使用されるように指定します。

process( )メソッド演算子の詳細は、付録Dを参照してください。

プラグマ

なし

例外

ORDImageExceptions.DATA_NOT_LOCAL

この例外は、process( )メソッドをコールし、データがローカルではない(source.local属性が0(ゼロ)である)場合に発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

例1:

image1のファイル・フォーマットをGIFFに変更します。

DECLARE
 obj ORDSYS.ORDImage;
BEGIN
 SELECT product_photo INTO obj FROM pm.online_media
  WHERE product_id = 3515 FOR UPDATE;
 obj.process('fileFormat=GIFF');
 -- Update
 UPDATE pm.online_media SET product_photo = obj WHERE product_id = 3515;
 -- Roll back to keep original format of image:
 ROLLBACK;
 EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
   DBMS_OUTPUT.PUT_LINE('Data is not local');
END;
/

例2:

image1をMAXCOMPRATIOのJPEG圧縮フォーマットに変更し、イメージの長さをX軸方向に倍にします。

DECLARE
 obj ORDSYS.ORDImage;
BEGIN
 SELECT product_photo INTO obj FROM pm.online_media
  WHERE product_id = 3515 FOR UPDATE;
  obj.process(
       'compressionFormat=JPEG,compressionQuality=MAXCOMPRATIO, xScale="2.0"');
 -- Update:
 UPDATE pm.online_media SET product_photo = obj WHERE product_id = 3515;
 -- Roll back to keep original format of image:
 ROLLBACK;
 EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
   DBMS_OUTPUT.PUT_LINE('Data is not local');
END;
/

注意:

一方の軸の長さを変更しても(xScale=2.0など)他方の軸の長さは影響を受けず、その結果、イメージがゆがむことに注意してください。また、1回のスケール操作では、xScaleとyScaleパラメータのみを組み合せることができます。それ以外のスケール演算子の組合せではエラーが発生します。

例3:

縮小イメージを作成します。

maxScaleおよびfixedScale演算子は、様々なサイズの元のイメージから縮小イメージを作成する場合に特に便利です。次の例では、元のアスペクト比を保持したまま32×32ピクセルの縮小イメージを作成します。

DECLARE
 obj ORDSYS.ORDImage;
BEGIN
 SELECT product_photo INTO obj FROM pm.online_media
  WHERE product_id = 3515 FOR UPDATE;
 obj.process('maxScale=32 32');
 UPDATE pm.online_media p SET product_thumbnail = obj
  WHERE product_id = 3515;
 COMMIT;
 EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
   DBMS_OUTPUT.PUT_LINE('Data is not local');
END;
/

例4:

フォーマットをTIFFに変更し、コンテンツ・フォーマットを8BIT、BIPピクセル・レイアウト、LUT解釈およびRGB色領域に変更します。

DECLARE
 obj ORDSYS.ORDImage;
BEGIN
 SELECT product_photo INTO obj FROM pm.online_media
  WHERE product_id = 3515 FOR UPDATE;
 obj.process('fileFormat=TIFF, contentFormat=8BITBIPLUTRGB');
 UPDATE pm.online_media SET product_photo = obj WHERE product_id = 3515;
 -- Roll back to keep original format of image:
 ROLLBACK;
 EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
   DBMS_OUTPUT.PUT_LINE('Data is not local');
END;
/

processCopy( )

構文

processCopy(command IN VARCHAR2,

dest IN OUT ORDImage);

説明

内部的または外部的に格納されたイメージを、(埋込みORDSourceオブジェクトの)source.LocalData属性に内部的に格納された別のイメージにコピーして、そのコピーに対してイメージ処理操作を実行します。

パラメータ

command

新しくコピーしたイメージに対する変更処理を指定します。

dest

新しいイメージのコピー先を指定します。

使用上の注意

同じORDImageをソースおよびコピー先の両方に指定することはできません。

このメソッドをコールすると、ソース(ローカルまたは外部)からイメージがコピー先BLOBにコピーされます。

processCopy( )メソッドをコールすると、setProperties( )、setUpdateTime( )およびsetMimeType( )メソッドが暗黙的に宛先イメージに適用されます。

イメージ処理演算子の詳細は、process( )、特に表5-1および表5-2を参照してください。

processCopy( )メソッド演算子の詳細は、付録Dを参照してください。

プラグマ

なし

例外

ORDImageExceptions.DATA_NOT_LOCAL

この例外は、processCopy( )メソッドをコールし、宛先イメージのsource.local属性値が0か、またはコピー先のsource.localData属性が初期化されていない場合に発生します。

ORDImageExceptions.NULL_DESTINATION

この例外は、processCopy( )メソッドをコールし、宛先イメージの値がNULLの場合に発生します。

ORDImageExceptions.NULL_LOCAL_DATA

この例外は、processCopy( )メソッドをコールし、宛先イメージのsource.localData属性値がNULLの場合に発生します。また、processCopy( )メソッドをコールし、ソース・イメージのsource.local属性値が1またはNULLで、source.localData属性値がNULLの場合にも発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

ソース・イメージから縮小イメージを生成します。

DECLARE
 obj_1 ORDSYS.ORDImage;
 obj_2 ORDSYS.ORDImage;

BEGIN
 SELECT product_photo, product_thumbnail INTO obj_1, obj_2
  FROM pm.online_media
  WHERE product_id = 3515 FOR UPDATE;
  obj_1.processCopy('maxScale=32 32', obj_2);
 UPDATE pm.online_media SET product_thumbnail = obj_2
  WHERE product_id=3515;
 COMMIT;
EXCEPTION
  WHEN ORDSYS.ORDImageExceptions.NULL_DESTINATION THEN
   DBMS_OUTPUT.PUT_LINE('The destination is null');
  WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
   DBMS_OUTPUT.PUT_LINE('Data is not local');
  WHEN ORDSYS.ORDImageExceptions.NULL_LOCAL_DATA THEN
   DBMS_OUTPUT.PUT_LINE('dest.source.localData attribute is null');
COMMIT;
END;
/

putMetadata( )

構文

putMetadata(xmlData IN NOCOPY XMLType, metadataType IN VARCHAR2 DEFAULT 'XMP' encoding IN VARCHAR2 DEFAULT 'UTF-8');

説明

スキーマが妥当なXML文書を受け入れ、ターゲット・イメージのファイル・フォーマットへの埋込みに適したバイナリ・パケットを作成します。このパケットは、エンコーディング・パラメータの値に基づいてエンコードされます。metadataTypeパラメータの値がXMPの場合、新しいXMPパケットがイメージに書き込まれ、既存のXMPパケットと置き換えられます。

パラメータ

xmlData

指定したmetadataTypeに対してスキーマが妥当なXML文書を含むXMLTypeを指定します。metadataTypeパラメータの値がXMPの場合は、ルート要素に整形式RDF文書が含まれている必要があります。

metadataType

書き込むメタデータのタイプを指定する文字列です。有効な値はXMPで、この値がデフォルトです。

encoding

イメージ・ファイルで使用される文字コードを指定します。有効な値は、UTF-8、UTF-16、UTF-16BEおよびUTF-16LEです。デフォルトはUTF-8です。

使用上の注意

同じxmlData入力から生成されたバイナリ・メタデータ・パケットのサイズは、エンコーディングによって異なる場合があります。サポートされるエンコーディングはイメージ・ファイル・フォーマットによって異なり、バイナリ・メタデータ・パケットのサイズが制限される場合があります。サポートされる各イメージ・フォーマットの制限を次に示します。

メタデータの機能の詳細は、『Oracle Multimediaユーザーズ・ガイド』を参照してください。

プラグマ

なし

例外

ORDImageExceptions.DATA_NOT_LOCAL

この例外は、データがローカルに存在しない場合(source.local属性が0(ゼロ)の場合)に発生します。

ORDImageExceptions.NULL_LOCAL_DATA

この例外は、source.localData属性の値がNULLの場合に発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

DECLARE
  image     ORDSYS.ORDImage;
  xmlData   XMLType;
BEGIN
  SELECT product_photo
  INTO image
  FROM pm.online_media
  WHERE product_id = 3106 FOR UPDATE;

  xmlData := xmltype(
       '<xmpMetadata xmlns="http://xmlns.oracle.com/ord/meta/xmp">' ||
       '<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"' ||
       '  xmlns:dc="http://purl.org/dc/elements/1.1/">' ||
       '<dc:rights>' ||
       '  <rdf:Alt>' ||
       '    <rdf:li xml:lang="en-us">' ||
       '      Oracle Corporation' ||
       '    </rdf:li>' ||
       '  </rdf:Alt>'||
       '</dc:rights>' ||
       '</rdf:RDF>' ||
       '</xmpMetadata>', 'http://xmlns.oracle.com/ord/meta/xmp');

  image.putMetadata(xmlData, 'xmp', 'utf-8');

  UPDATE pm.online_media
  SET product_photo = image
  WHERE product_id=3106;
  COMMIT;

  EXCEPTION
    WHEN ORDSYS.ORDImageExceptions.DATA_NOT_LOCAL THEN
      DBMS_OUTPUT.PUT_LINE('Data is not local');
    WHEN ORDSYS.ORDImageExceptions.NULL_LOCAL_DATA THEN
      DBMS_OUTPUT.PUT_LINE('source.localData attribute is null');
    WHEN ORDSYS.ORDImageExceptions.NULL_SOURCE THEN
      DBMS_OUTPUT.PUT_LINE('source is null');
    WHEN OTHERS THEN
      RAISE;
    END;/

setProperties( )

構文

setProperties( );

説明

イメージ・データを読み取ってオブジェクト属性の値を取得し、適切な属性フィールドに格納します。イメージ・データは、データベースのsource.localData属性に格納するか、外部的にBFILEまたはURLに格納できます。データが外部でBFILE以外に格納される場合、データは一時BLOBに読み取られてイメージ特性が判断されます。

このメソッドは外部イメージに対してはコールできません。かわりに、外部イメージに対するsetProperties( )メソッドを使用します。

パラメータ

なし

使用上の注意

ネイティブ・フォーマットのイメージのコピー、格納または処理を行った後で、このメソッドをコールして、新しいコンテンツの現在の特性を設定します。このメソッドが暗黙的にコールされる場合はその必要はありません。

このメソッドを使用して、イメージに関する次の情報を設定します。

このメソッドをコールすると、setUpdateTime( )およびsetMimeType( )メソッドが暗黙的にコールされます。

プラグマ

なし

例外

ORDImageExceptions.NULL_LOCAL_DATA

この例外は、setProperties( )メソッドをコールし、source.local属性値が1またはNULLで、source.localData属性値がNULLの場合に発生します。

ORDImageExceptions.NULL_SOURCE

この例外は、ORDImage.source属性の値がNULLの場合に発生します。

これらの例外の詳細は、付録Hを参照してください。

イメージを選択し、その後にsetProperties( )メソッドで属性を設定します。

DECLARE
 image ORDSYS.ORDImage;
BEGIN
 SELECT p.product_photo INTO image FROM pm.online_media p
  WHERE p.product_id = 3515 FOR UPDATE;
 -- set property attributes for the image data
 image.setProperties();
 DBMS_OUTPUT.PUT_LINE('image width = ' || image.getWidth());
 DBMS_OUTPUT.PUT_LINE('image height = ' || image.getHeight());
 DBMS_OUTPUT.PUT_LINE('image size = ' || image.getContentLength());
 DBMS_OUTPUT.PUT_LINE('image file type = ' || image.getFileFormat());
 DBMS_OUTPUT.PUT_LINE('image type = ' || image.getContentFormat());
 DBMS_OUTPUT.PUT_LINE('image compression = ' || image.getCompressionFormat());
 DBMS_OUTPUT.PUT_LINE('image mime type = ' || image.getMimeType());
 UPDATE pm.online_media p SET p.product_photo = image
   WHERE p.product_id = 3515;
 COMMIT;
END;
/
 


外部イメージに対するsetProperties( )

構文

setProperties(description IN VARCHAR2);

説明

Oracle Multimediaによってネイティブに認識されないフォーマットの特定の外部イメージの特性を、適切な属性フィールドに書き込みます。

パラメータ

description

外部イメージに設定するイメージ特性を指定します。

使用上の注意


注意:

外部イメージのプロパティを一度設定すると、その後のプロパティの一貫性はユーザーが管理する必要があります。Oracle Multimediaで不明なファイル・フォーマットが検出された場合、プロパティは暗黙的に設定されません。

外部イメージ・サポートを使用する場合の詳細は、付録Eを参照してください。このsetProperties( )メソッドを使用して記述できるフォーマットは、ネイティブに認識されない一部のフォーマットのみです。

外部イメージのコピー、格納または処理を行った後、このメソッドをコールし、新しいイメージ・コンテンツの特性を設定します。付録Bで説明するネイティブ・イメージ・タイプとは異なり、外部イメージにはファイルのビットを解釈する方法についての情報がなく、Oracle Multimediaで情報を認識できません。この場合、情報は明示的に設定する必要があります。

表5-3に、外部イメージに設定可能なイメージ特性を示します。

表5-3 外部ファイルのイメージ特性

フィールド データ型 説明

CompressionFormat

STRING

圧縮フォーマットの値を指定します。有効な値はCCITTG3、CCITTG4またはNONE(デフォルト)です。

DataOffset

INTEGER

Oracle Multimediaでは解釈されないオフセット(ファイルの先頭からイメージ・データの先頭まで)を指定します。オフセットを設定すると、ヘッダーになる可能性がある部分をスキップできます。値はLOB長より小さい負ではない整数を設定します。デフォルトは0(ゼロ)です。

DefaultChannelSelection

INTEGERまたは

INTEGER, INTEGER, INTEGER

マルチバンド・イメージで、イメージが読取りまたは処理される際に、カラー・チャネルとして解釈されるバンドを指定します。1つの整数を指定した場合、イメージは、指定したバンドのみのデータを含むグレースケール・イメージとして扱われます。3つの整数を指定した場合、イメージはRGBイメージとして扱われ、指定した先頭のバンドが赤チャネル、2番目が緑チャネル、3番目が青チャネルに使用されます。イメージの先頭のバンドには、1の番号が付けられます。指定するバンドの番号はイメージのバンド数以下である必要があります。

次に例を示します。

  • DefaultChannelSelection = 1と指定すると、イメージの先頭のバンドがグレースケール・イメージとして解釈されます。

  • DefaultChannelSelection = 4と指定すると、イメージの4番目のバンドがグレースケール・イメージとして解釈されます。

  • DefaultChannelSelection = 1, 2, 3と指定すると、イメージはRGBとして解釈され、イメージの先頭の3つのバンドがそれぞれ赤、緑および青チャネルとして使用されます。

  • DefaultChannelSelection = 3, 1, 4と指定すると、イメージはRGBとして解釈され、イメージの3番目、1番目および4番目のバンドがそれぞれ赤、緑および青チャネルとして使用されます。

Height

INTEGER

イメージの高さをピクセル単位で指定します。値は正の整数を指定します。デフォルトはないため、値は必ず指定する必要があります。

Interleaving

STRING

イメージ内のバンド・レイアウトを指定します。有効なスタイルは次のとおりです。

  • BIP(デフォルト): ピクセル単位のバンド・インターリーブ

  • BIL: 行単位のバンド・インターリーブ

  • BSQ: バンド順序

NumberOfBands

INTEGER

255より小さい正の整数値で、イメージ内のカラー・バンド数を指定します。デフォルトは3です。

PixelOrder

STRING

ピクセル順序を示す文字列を指定します。文字列がNORMAL(デフォルト)の場合、左端のピクセルがファイルの先頭になります。文字列がREVERSEの場合、右端のピクセルが先頭になります。

ScanlineOrder

STRING

走査線順序を示す文字列を指定します。文字列がNORMAL(デフォルト)の場合、上端の走査線がファイルの先頭になります。文字列がINVERSEの場合は、下端の走査線が先頭になります。

UserString

STRING

4文字で記述する文字列を指定します。使用する場合、文字列はfileFormat属性に格納され、ユーザー文字列「OTHER:」に追加されます。デフォルトは空白で、fileFormatは「OTHER」に設定されます。

Width

INTEGER

イメージの幅をピクセル単位で指定します。値は正の整数を指定します。デフォルトはないため、値は必ず指定する必要があります。

MimeType

STRING

img/gifなどのMIMEタイプを指定します。


外部イメージ用にsetProperties( )メソッドに指定した値が、既存のORDImageデータ属性に書き込まれます。fileFormat属性はOTHERに設定され、ユーザー文字列(指定した場合)が含まれます。たとえば、OTHER:LANDSATのようになります。

プラグマ

なし

例外

ORDImageExceptions.NULL_PROPERTIES_DESCRIPTION

この例外は、外部イメージ用にsetProperties( )メソッドをコールし、descriptionパラメータの値がNULLの場合に発生します。

この例外の詳細は、付録Hを参照してください。

外部イメージを選択し、その後にイメージのプロパティを設定します。

DECLARE
    obj ORDSYS.ORDImage;
BEGIN
 SELECT p.product_photo INTO obj FROM pm.online_media p
  WHERE p.product_id = 3501 FOR UPDATE;
 -- Set property attributes for the image data:
 obj.setProperties('width=123 height=321 compressionFormat=NONE' ||
                     ' userString= LANDSTAT dataOffset=128' ||
                     ' scanlineOrder=INVERSE pixelOrder=REVERSE' ||
                     ' interleaving=BIL numberOfBands=1' ||
                     ' defaultChannelSelection=1');
 UPDATE pm.online_media SET product_photo = obj
   WHERE product_id=3501;
 COMMIT;
END;
/