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文件的方式。