このトピックでは、ラスターをBYTEAタイプのイメージに変換するST_AsImage関数について説明します。
構文
bytea ST_AsImage(raster raster_obj,
box extent,
integer pyramidLevel default 0,
cstring bands default '',
cstring format default 'PNG',
cstring option default '');
パラメーター
項目 | 説明 |
raster_obj | 変換するラスタ。 |
extent | イメージの範囲。 デフォルトでは、地理座標系が使用されます。 |
pyramidLevel | 画像が存在するピラミッドレイヤ。 有効な値は0から始まります。 デフォルト値:0 |
bands | 画像を取得するバンドのリストです。 有効な値は0から始まります。 例: |
format | イメージの形式。 有効な値:
|
option | JSON形式の文字列を変換するために使用されるオプション。 |
次の表に、optionパラメーターのフィールドを示します。
フィールド | 説明 | 種類 | デフォルト値 | メモの設定 |
nodata | NoData値を使用するかどうかを指定します。 | bool | 偽 |
|
nodataValue | ラスターのNoData値。 | integer | 0 | nodataパラメーターがtrueに設定されている場合、NoData値を指定する必要があります。 |
rast_coord | 入力ボックスをピクセル座標で指定するかどうかを指定します。 | bool | 偽 | ピクセル座標が使用される場合、xは列番号を示す。 の行番号を示し、yは行番号を示します。 ピクセルの。 両方の列番号。 と行番号 0から開始します。 |
strength | ディスプレイにエンハンスメントを実装するかどうかを指定します。 | String | none | 有効な値:
|
quality | 圧縮の質。 | integer | 75 | Valid values: 1 to 100. |
説明
この関数は、BYTEAタイプのイメージを返します。
デフォルトでは、最大100 MBのトリミングされたデータをキャッシュできます。これは、最大100 MBのデータを返すことができます。 画像サイズの制限を調整するには、ganos.raster.clip_max_buffer_sizeパラメーターを使用してキャッシュサイズを指定します。
このパラメータには次の値が有効です。
1: ラスターには、ラスターをグレースケール画像に変換できる単一のバンドがあります。
2: ラスターには、ラスターをグレースケール画像に変換できる単一のバンドと、アルファバンドがあります。
3: ラスタは、Rバンド、Gバンド、Bバンドの3つのバンドを有する。
4: ラスタには、Rバンド、Gバンド、Bバンド、アルファバンドの4つのバンドがあります。
例
--Specify the size of cropped data that can be cached.
SELECT ST_AsImage(raster_obj,
'(-180,-90), (0,0)'::Box)
FROM raster_table
WHERE id=1;
--Specify the pyramid layer at which the image resides.
SELECT ST_AsImage(raster_obj,
'(-180,-90), (0,0)'::Box,
1)
FROM raster_table
WHERE id=1;
--Specify the cropping range of a band.
SELECT ST_AsImage(raster_obj,
'(-180,-90), (0,0)'::Box,
1,
'0-2')
FROM raster_table
WHERE id=1;
--Specify the compression format.
SELECT ST_AsImage(raster_obj,
'(-180,-90), (0,0)'::Box,
1,
'0-2',
'PNG')
FROM raster_table
WHERE id=1;
--Specify to implement enhancement by using stretching based on statistical values.
SELECT ST_AsImage(rast,
'(-180,-90), (0,0)'::Box,
0,
'',
'PNG',
'{"nodata":"false", "nodatavalue":"0","rast_coord":"false", "strength":"stats", "quality":"75"}')
FROM raster_table
WHERE id=1;
--Specify the pixel coordinates based on which you want to crop the image and implement enhancement by using stretching based statistical values.
SELECT ST_AsImage(rast,
'(0,0), (200,100)'::Box,
0,
'',
'PNG',
'{"nodata":"false", "nodatavalue":"0","rast_coord":"true", "strength":"stats", "quality":"75"}')
FROM raster_table
WHERE id=1;