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 はラスターが使用しているSRID を指定します。引数の一覧は次の通りです。
nband 単一バンド出力のためのものです。
nbands 出力バンドの配列 (PNG では 4要素が最大です) で、バンドの並び順は RGBA です。たとえば ARRAY[3,2,1]は、3番バンドを赤、2番バンドを緑、1番バンドを青にそれぞれ対応させます。
compression 1から 9の数を指定します。大きいほど圧縮効率が上がります。
options PNG のために定義する GDAL オプションの文字列配列です (ST_GDALDriversの create_options を見てください)。PNG の妥当なパラメーターは ZLEVEL (圧縮に費やす時間の合計で、デフォルトは 6) です。ARRAY['ZLEVEL=9']というようにします。この関数が二つの出力を行う必要があるため、ワールドファイルは PNG では許されません。詳細についてはGDAL Raster format optionsをご覧下さい。
Availability: 2.0.0 - GDAL 1.6.0以上が必要です。
最初の 3バンドを、3番バンドを赤、1番バンドを緑、2番バンドを青にして出力する。
SELECT ST_AsPNG(rast) As rastpng
FROM dummy_rast WHERE rid=2;
SELECT ST_AsPNG(rast, ARRAY[3, 1, 2]) As rastpng
FROM dummy_rast WHERE rid=2;