名前

ST_AsPNG — ラスタの選択されたバンドを、単一のportable network graphics(PNG)画像としてバイト配列で返します。バンドを指定せず、1バンドか3バンドか4バンドある場合には、全てのバンドを使用します。バンドを指定せず、2バンドか4より多いバンドがある場合には、1番バンドを使用します。対象バンドはRGBまたはRGBAに対応付けられます。

概要

bytea ST_AsPNG(raster rast, text[] options=NULL);

bytea ST_AsPNG(raster rast, integer nband, integer compression);

bytea ST_AsPNG(raster rast, integer nband, text[] options=NULL);

bytea ST_AsPNG(raster rast, integer[] nbands, integer compression);

bytea ST_AsPNG(raster rast, integer[] nbands, text[] options=NULL);

説明

ラスタの選択されたバンドを、単一のportable network graphics(PNG)画像として返します。より一般でないラスタタイプで出力する必要がある場合には、ST_AsGDALRasterを使います。バンドを指定しない場合には、前から3バンドを出力します。この関数には多数の任意引数が付くさまざまな形式があります。sridが指定されない場合には、sridはラスタが使用しているSRDIを指定します。引数の一覧は次の通りです。

  • nband 単一バンド出力のためのものです。

  • nbands 出力バンドの配列(PNGでは3要素が最大です)で、バンドの並び順はRGBです。たとえばARRAY[3,2,1]は、3番バンドを赤、2番バンドを緑、1番バンドを赤にそれぞれ対応させます。

  • compression 1から9の数を指定します。大きいほど圧縮効率が上がります。

  • options PNGのために定義するGDALオプションの文字列配列です(ST_GDALDriversのcreate_optionsを見てください)。PNGの妥当なパラメタはZLEVEL(圧縮に費やす時間の合計で、デフォルトは6)です。ARRAY['ZLEVEL=9']というようにします。この関数が2つの出力を行う必要があるため、WORLDFILEはPNGでは許されません。詳細についてはGDAL Raster format optionsをご覧下さい。

初出: 2.0.0 - GDAL 1.6.0以上が必要です。

SELECT ST_AsPNG(rast) As rastpng
FROM dummy_rast WHERE rid=2;

-- 前から3バンドを出力し、3番を赤、1番を緑、2番を青に対応付けます
SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng
FROM dummy_rast WHERE rid=2;  
                                

関連情報

ST_AsGDALRaster, ST_ColorMap, ST_GDALDrivers, 「PostGISラスタを使ったカスタムアプリケーションの構築」