MATLAB生成Origin颜色列表 (colormap)

origin 中颜色列表按照文件后缀可以大致分为.pal和.oth两种。

.pal的文件是windows下的一个标准格式

.oth是一个xml文件。

其中颜色的数据包含在 dt:dt="bin.base64"> 之后, 下一个</e之前。

颜色数据被base64编码后存储。

当有了一系列RGB的数值后,想直接将转到origin中,使用origin中一个一个设置,我认为过于麻烦,有一个直接的方法。

将RGB数据补全其alpha数值(可以直接设置为1),进行base64编码,而后按照.oth的固定格式编写,保存。这样就可以直接的origin中使用了。

下面提供matlab函数,其余语言的代码,大同小异。

function RGB2OriginTheme(A,add)
% 将输入的颜色矩阵A转为origin软件识别的颜色别表,add为文件保存地址(注意包含文件名)

% A 应该为1*m的矩阵,元素依次为第一个颜色的RGB和alpha,第二个颜色的RGB和alpha
% by YJ 2024.07.15



st = matlab.net.base64encode(A); % A 进行base64编码结果,结果为char类型


st1 = '<?xml version="1.0"?><OriginStorage atp="1" Element="0" Element2="0" Objects="1073741824" Objects2="0" Properies="65536" Properies2="0" Count="1"><e NodeID="1"><e NodeID="256"><e NodeID="521" TypeID="65539" BlobArrElementaryType="3" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">';

st2 = '</e></e></e></OriginStorage>';

FI = fopen(add,'w');
fprintf(FI,'%s\n',[st1 st st2]);
fclose(FI);

end

复制保存后。按照下面格式使用。

假设现在有一个渐变色的RGB矩阵:

rgb_matrix=[
    68, 16, 122;
    102, 26, 127;
    136, 37, 132;
    170, 47, 137;
    204, 58, 142;
    238, 68, 147;
    255, 81, 150;
    255, 103, 154;
    255, 125, 158;
    255, 148, 161;
    255, 158, 146;
    255, 168, 130;
    255, 178, 115;
    255, 188, 100;
    255, 198, 85;
    255, 208, 70;
    255, 218, 55;
    255, 228, 40;
    255, 238, 25;
];

其是一个如下的colormap(忽略右侧对用的文字)

按照下面格式,使用RGB2OriginTheme函数

rgb = rgb_matrix;
RGB = [rgb repmat(1,size(rgb,1),1)];
RGB2 = RGB';
A=uint8(RGB2(:)');
RGB2OriginTheme(A,'C:\Program Files\OriginLab\Origin2018\Themes\Color\test3.oth')

此时,在你电脑的‘'C:\Program Files\OriginLab\Origin2018\Themes\Color\’文件夹下形成了一个名为test3.oth的文件。

如果MATLAB报错,请将MATLAB使用管理员权限打开后,再尝试。

之后,在origin中,就可以直接找到这个颜色列表了。

注意,如果你安装的位置不是默认位置,请修改前面的路径为你的安装路径。

.pal文件格式的制作,可以在MATLAB的APP中搜索cmap2pal,该函数实现了颜色矩阵转.pal文件的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值