將柵格對象轉化為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;