write/
write.rs

1use wkb_raster::{Raster, RasterBand, RasterDataSource, InMemoryRasterData, Endian};
2
3fn main() {
4    // 2x2 image bytes, u8 format
5    let bytes = vec![
6        vec![34, 40],
7        vec![56, 0],
8    ];
9
10    let raster = Raster {
11        endian: Endian::Big,    // note: currently Endian::Little is not supported in PostGIS
12        version: 0,             // always set to 0
13        scale_x: 500.0,           // pixel width in degrees
14        scale_y: 1.0,           // pixel height in degrees
15        ip_x: 0.0,              // upper left corner longitude in degrees
16        ip_y: 0.0,              // upper left corner latitude in degrees
17        skew_x: 0.0,            // rotation in degrees (0 to 360)
18        skew_y: 0.0,            // rotation in degrees (0 to 360)
19        srid: 4326,             // SRID EPSG identifier
20        width: 2,               // pixel columns
21        height: 2,              // rows
22        bands: vec![RasterBand {
23            is_nodata_value: false,                     // See documentation, usually false
24            data: RasterDataSource::InMemory(
25                InMemoryRasterData::UInt8 {
26                    data: bytes,
27                    nodata: None,
28                }
29            ),
30        }],
31    };
32
33    println!("{}", raster.to_wkb_string());
34}