名称

ST_AsPNG — 以单个便携式网络图形 (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);

说明

以单个便携式网络图形图像 (PNG) 的形式返回栅格的所选波段。如果你需要导出为不太常见的栅格类型,请使用 ST_AsGDALRaster。如果没有指定波段,则导出前 3 个波段。该函数有许多变体,并有许多选项。如果没有指定 srid,则使用栅格的 srid。以下是它们的分类

  • nband 用于单波段导出。

  • nbands 是要导出的波段的数组(请注意,PNG 的最大值为 4),并且波段的顺序为 RGBA。例如,ARRAY[3,2,1] 表示将波段 3 映射到红色,将波段 2 映射到绿色,将波段 1 映射到蓝色

  • compression 1 到 9 之间的数字。数字越大,压缩率越高。

  • options 文本数组,其中包含针对 PNG 定义的 GDAL 选项(查看 ST_GDALDrivers 的 PNG 的 create_options)。对于 PNG,有效的选项只有一个,即 ZLEVEL(用于压缩的时间量 -- 默认值为 6),例如 ARRAY['ZLEVEL=9']。不允许使用 WORLDFILE,因为该函数必须输出两个输出。有关更多详细信息,请参阅 GDAL 栅格格式选项

可用性:2.0.0 - 需要 GDAL >= 1.6.0。

示例

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

-- export the first 3 bands and map band 3 to Red, band 1 to Green, band 2 to blue
SELECT ST_AsPNG(rast, ARRAY[3,1,2]) As rastpng
FROM dummy_rast WHERE rid=2;
                

另请参阅

ST_AsGDALRasterST_ColorMapST_GDALDrivers第 9.3 节,“使用 PostGIS 光栅构建自定义应用程序”