ST_AsJPEG

将栅格对象转化为JPEG格式二进制流。

语法

bytea ST_AsJPEG(raster raster_obj,
                box extent,
                integer pyramidLevel default 0,
                cstring bands default '',
                cstring option default '');

参数

参数名称

描述

raster_obj

需要计算的raster对象。

extent

影像的范围,默认使用地理坐标系统。

pyramidLevel

影像金字塔层级,从0开始,默认值为0。

bands

该参数用于配置需要获取的波段列表。

需根据JPEG波段数量配置波段列表,配置原则如下:

  • JPEG波段数量为3。

  • 支持指定连续波段范围(从0开始)配置,例如,则该参数可配置为'0-2',用于配置连续的0、1、2波段。

  • 支持指定波段序号配置(从0开始)配置,例如,则该参数可配置为'0,2,4',用于配置0、2、4波段。

  • 如果该参数不配置(该参数默认为空),将使用前3个波段(0-2)。

option

JSON字符串类型的转换选项。

option参数说明如下。

参数名称

描述

类型

默认值

说明

nodata

是否使用nodata值。

bool

false

  • true:需要处理nodata值。

  • false:nodata值作为普通值处理。

nodataValue

nodata值。

integer

0

nodata=true时,需为nodata设置参数值。

rast_coord

传入的box是否为像元坐标。

bool

false

如果是像元坐标,横坐标x表示像元的列号(起始为0),纵坐标y表示像元的行号(起始为0)。

strength

是否进行增强。

string

none

显示增强的方式,取值:

  • none:不进行增强。

  • stats:使用统计值进行拉伸。

quality

压缩质量。

integer

75

压缩质量,取值为1~100。

描述

  • 函数将返回一个bytea表示的影像格式。

  • 默认的裁剪缓存为100 MB,代表最多只能裁剪出100 MB大小的结果数据,如果需要调整返回结果大小,可使用参数ganos.raster.clip_max_buffer_size设置缓存的大小。

  • 波段数量说明如下:

    • 1:表示灰度影像。

    • 3:表示R波段、G波段和B波段。

示例

--使用裁剪范围。
SELECT ST_AsJPEG(raster_obj, 
                  '(-180,-90), (0,0)'::Box) 
FROM raster_table    
WHERE id =1;

--指定金字塔层级。
SELECT ST_AsJPEG(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1) 
FROM raster_table    
WHERE id =1;

--指定波段使用裁剪范围。
SELECT ST_AsJPEG(raster_obj, 
                  '(-180,-90), (0,0)'::Box,
                 1,
                 '0-2') 
FROM raster_table    
WHERE id =1;

--使用统计值拉伸。
SELECT ST_AsJPEG(rast, 
                  '(-180,-90), (0,0)'::Box, 
                  0, 
                  '', 
                  '{"nodata":"false", "nodatavalue":"0","rast_coord":"false", "strength":"stats", "quality":"75"}')
FROM raster_table    
WHERE id =1;