子沫
颜色RGB转LAB算法
01/18
本文最后更新于2021年01月18日,已超过1496天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
废话不多说,show my code
//RGB转LAB
public function RgbToLab($RED,$GREEN,$BLUE)
{
$x=0.95047;
$y=1;
$z=1.08883;
if ($RED/255>0.04045){
$R=pow(($RED/255+0.055)/1.055,2.4);
}else{
$R=($RED/255)/12.92;
}
if ($GREEN/255>0.04045){
$G=pow(($GREEN/255+0.055)/1.055,2.4);
}else{
$G=($GREEN/255)/12.92;
}
if ($BLUE/255>0.04045){
$b=pow(($BLUE/255+0.055)/1.055,2.4);
}else{
$b=($BLUE/255)/12.92;
}
$X=0.4124*$R+0.3576*$G+0.1805*$b;
$Y=0.2126*$R+0.7152*$G+0.0722*$b;
$Z=0.0193*$R+0.1192*$G+0.9505*$b;
if (($Y/$y)>pow(6/29,3)){
$L=116*pow($Y/$y,1/3)-16;
}else{
$L=116*((1/3)*pow(29/6,2)*($Y/1)+4/29)-16;
}
if(($X/$x)>pow(6/29,3)){
if(($Y/$y)>pow(6/29,3)){
$A=500*(pow($X/$x,1/3)-pow($Y/$y,1/3));
}else{
$A=500*(pow($X/$x,1/3)-((1/3)*pow(29/6,2)*($Y/$y)+4/29));
}
}else{
if(($Y/$y)>pow(6/29,3)){
$A=500*(((1/3)*pow(29/6,2)*($X/$x)+4/29)-pow($Y/$y,1/3));
}else{
$A=500*(((1/3)*pow(29/6,2)*($X/$x)+4/29)-((1/3)*pow(29/6,2)*($Y/$y)+4/29));
}
}
if(($Y/$y)>pow(6/29,3)){
if(($Z/$z)>pow(6/29,3)){
$B=200*(pow($Y/$y,1/3)-pow($Z/$z,1/3));
}else{
$B=200*(pow($Y/$y,1/3)-((1/3)*pow(29/6,2)*($Z/$z)+4/29));
}
}else{
if(($Z/$z)>pow(6/29,3)){
$B=200*(((1/3)*pow(29/6,2)*($Y/$y)+4/29)-pow($Z/$z,1/3));
}else{
$B=200*(((1/3)*pow(29/6,2)*($Y/$y)+4/29)-((1/3)*pow(29/6,2)*($Z/$z)+4/29));
}
}
return ['L'=>$L,'A'=>$A,'B'=>$B];
}


版权属于:
Strjson博客-专注于各种精品源码、精品软件、技术教程分享、黑客技术、破解教程(爱你在心口难开、没事写一写)
本文链接:
https://jpgke.com/jishu/175.html(转载时请注明本文出处及文章链接)
作品采用: