1、将已知的色带数组转换为Excel文件(Test.xlsx)
格式如下:

2、Python生成QGIS colormap文件(.txt)
import numpy as np
import os
import sys
import pandas as pd
#QGSI输入文件
#读取C++中导出的Rainbow数组
fp_rainbow = r'Test.xlsx';
df = pd.read_excel(fp_rainbow)
rainbow_ds = df.values
#将上述数组转换为QGIS输入格式
path = 'colormap.txt';
vmin = 1
vmax = 99
interval = (vmax-vmin)/255 #归一化
with open(path,"w") as f:
for i in range(256):
b = rainbow_ds[i,0]
g = rainbow_ds[i,1]
r = rainbow_ds[i,2]
value = vmin + interval*i
label = round(value, 5)
f.write(str(value))
f.write(',')
f.write(str(r))
f.write(',')
f.write(str(g))
f.write(',')
f.write(str(b))
f.write(',')
f.write(str(255))
f.write(',')
f.write(str(label))
f.write('\n')
生成的colormap样例如下:

3、QGIS中导入colormap.txt,加载导入的色带

4、 样式/保存样式

保存样式:“保存为SLD样式文件”
文件:SLD文件输出地址

“OK”
5、效果展示
灰度图及渲染后图像如下:

注:QGIS中读取顺序为 RGB



















