GDAL-RASTER-COLOR-BLEND(1) GDAL GDAL-RASTER-COLOR-BLEND(1) (NAME) gdal-raster-color-blend - RGB/RGBA 3.12 . (SYNOPSIS) : gdal raster blend [] / : -i, --color-input, --input [] [ ] --overlay [] -o, --output [] [ ] : -h, --help --json-usage JSON --config = [] -q, --quiet ( ) [ ] : -f, --of, --format, --output-format ( "GDALG" ) [ ] --co, --creation-option = [] [ ] --overwrite [ ] --append --append [ ] --overwrite --operator . OPERATOR=src-over|hsv-value|multiply|screen|overlay|hard-light|darken|lighten|color-dodge|color-burn (: src-over) --opacity (0= 100= ) (: 100) : --if, --input-format [] [ ] --oo, --open-option = [] [ ] (DESCRIPTION) gdal raster blend ( ) () . (hillshade) gdal raster hillshade () (DEM) gdal raster color-map hsv-value . src-over << >> (alpha blending) . gdal raster pipeline . GDALG ( / ) JSON GDALG . GDALG: GDAL Streamed Algorithm (on-the-fly) (streamed) . (PROGRAM-SPECIFIC OPTIONS) --input . . hsv-value (Byte) . --opacity (Opacity) 0 100. 0 . 100 . 100 . --operator src-over|hsv-value|multiply|screen|overlay|hard-light|lighten|darken . src-over . . --overlay (). . (STANDARD OPTIONS) --append (subdataset) . GTiff -- GeoTIFF File Format GPKG -- GeoPackage raster. . --co, --creation-option = . GeoTIFF . . . --formats . Raster drivers . --if, --input-format / () . . . . . . --oo, --open-option = ( ). . -f, --of, --format, --output-format . : gdal --formats | grep raster | grep rw | sort --overwrite . gdal . (DETAILS OF BLENDING OPERATIONS) [0,1] (premultiplied). : o overlay_{C} o overlay_{A} --opacity o input_{C} o input_{A} o output_{C} o opacity --opacity . : [0,1] [0,255] . . ( ) : output_{A} = overlay_{A} + input_{A} - overlay_{A} * input_{A} : (OVERVIEW OF RASTER BLEND OPERATORS) +----------------+-----------------------------+-----------------------+ | | | | +----------------+-----------------------------+-----------------------+ |src-over | | [: | | | | | | | | | | | ( | src-over] | | | | [] | | | ) | | +----------------+-----------------------------+-----------------------+ |hsv-value | | [: | | | | | | | | | | | (Value) | hsv-value] | | | | [] | | | / | | | | (Hue/Saturation) | | | | | | +----------------+-----------------------------+-----------------------+ |multiply | | [: | | | | | | | | | | | | multiply] | | | | [] | +----------------+-----------------------------+-----------------------+ |screen | | [: | | | | | | | | | | | | screen] | | | | [] | +----------------+-----------------------------+-----------------------+ |overlay | | [: | | | | | | | (Multiply) | | | | (Screen) | overlay] | | | | [] | +----------------+-----------------------------+-----------------------+ |hard-light | | [: | | | | | | | | | | | | hard-light] | | | | [] | +----------------+-----------------------------+-----------------------+ |darken | | [: | | | | | | | | | | | | darken] | | | | [] | +----------------+-----------------------------+-----------------------+ |lighten | | [: | | | | | | | | | | | | lighten] | | | | [] | +----------------+-----------------------------+-----------------------+ |color-dodge | | [: | | | | | | | | | | | | color-dodge] | | | | [] | +----------------+-----------------------------+-----------------------+ |color-burn | | [: | | | | | | | | | | | | color-burn] | | | | [] | +----------------+-----------------------------+-----------------------+ o src-over . : output_{C} * output_{A} = (overlay_{C} * overlay_{A} * opacity) + (input_{C} * input_{A} * (1 - overlay_{A} * opacity)) o hsv-value (Value) (Hue) (Saturation) . : o RGB ( ) o RGB HSV ( ) o output_{V} : output_{V} = (overlay_{V} * overlay_{A} * opacity) + (input_{V} * (1 - overlay_{A} * opacity)) RGB/RGBA overlay_{V} max(overlay_{R},overlay_{G},overlay_{B}) . o ( :math:output_{V}) RGB. . o multiply . . : output_{C} = overlay_{C} * input_{C} + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) o screen: . . . . : output_{C} = overlay_{C} + input_{C} - overlay_{C} * input_{C} o overlay: Multiply () Screen () . . . : 0.5 (): output_{C} = 2 * overlay_{C} * input_{C} + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) 0.5 (): output_{C} = overlay_{A} * input_{A} - 2 * (input_{A} - input_{C}) * (overlay_{A} - overlay_{C}) + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) o hard-light: . 50% . . overlay . : 0.5 (): output_{C} = overlay_{A} * input_{A} - 2 * (input_{A} - input_{C}) * (overlay_{A} - overlay_{C}) + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) 0.5 (): output_{C} = 2 * overlay_{C} * input_{C} + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) o darken: . r1 g1 b1 r2 g2 b2 [min(r1,r2), min(g1,g2), min(b1,b2)] . : output_{C} = min(overlay_{C}, input_{C}) + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) o lighten: Darken . . r1 g1 b1 r2 g2 b2 [max(r1,r2), max(g1,g2), max(b1,b2)] . : output_{C} = max(overlay_{C}, input_{C}) + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) o color-dodge: . : . . . : overlay_{C} * input_{A} overlay_{A} * input_{A} : output_{C} = overlay_{A} * input_{A} + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) overlay_{C} * input_{A} overlay_{A} * input_{A} : output_{C} = input_{C} * overlay_{A} / (1 - overlay_{C} / overlay_{A}) + overlay_{C} * (1 - input_{A}) + input_{C} * (1 - overlay_{A}) o color-burn: . . . : overlay_{C} * input_{A} overlay_{A} * input_{A} : output_{C} = overlay_{A} * input_{A} + input_{C} * (1 - overlay_{A}) + overlay_{C} * (1 - input_{A}) overlay_{C} * input_{A} overlay_{A} * input_{A} : output_{C} = input_{C} * overlay_{A} / (1 - overlay_{C} / overlay_{A}) + overlay_{C} * (1 - input_{A}) + input_{C} * (1 - overlay_{A}) (RETURN STATUS CODE) 0 ( ). (EXAMPLES) : . $ gdal raster blend --opacity 75 source.tif overlay.tif out.tif : DEM hsv-value. [: DEM] [] [: DEM] [] $ gdal raster blend --overlay=hillshade.tif --operator=hsv-value \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM multiply. $ gdal raster blend --overlay=hillshade.tif --operator=multiply \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM screen. $ gdal raster blend --overlay=hillshade.tif --operator=screen \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM overlay. $ gdal raster blend --overlay=hillshade.tif --operator=overlay \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM hard-light. $ gdal raster blend --overlay=hillshade.tif --operator=hard-light \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM darken. $ gdal raster blend --overlay=hillshade.tif --operator=darken \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM lighten. $ gdal raster blend --overlay=hillshade.tif --operator=lighten \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM color-dodge. $ gdal raster blend --overlay=hillshade.tif --operator=color-dodge \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] : DEM color-burn. $ gdal raster blend --overlay=hillshade.tif --operator=color-burn \ hypsometric.tif hypsometric_combined_with_hillshade.tif [: ] [] (AUTHOR) Even Rouault (COPYRIGHT) 1998-2026 August 18, 2026 GDAL-RASTER-COLOR-BLEND(1)