设为首页 收藏本站
查看: 678|回复: 0

[经验分享] php生成热点图----RGB颜色变化规律

[复制链接]

尚未签到

发表于 2017-4-9 09:00:53 | 显示全部楼层 |阅读模式
  PHP生成热点图,有两大要点:
  1. 点需要有模糊效果。
  2. 点越多,颜色需要越鲜艳。
  借用http://www.labsmedia.com/clickheat/的算法,第一点比较好理解,第二点可以把RGB值和画图板里的颜色对比。
  clickheat--version1:

<?php
define('CLICKHEAT_LOW_COLOR', 0);
define('CLICKHEAT_HIGH_COLOR', 255);
define('CLICKHEAT_GREY_COLOR', 240);
define('CLICKHEAT_ALPHA', 60);
for ($i = 0; $i < 110; $i++)
{
/** Red */
if ($i < 10)
{
$red = CLICKHEAT_GREY_COLOR + (CLICKHEAT_LOW_COLOR - CLICKHEAT_GREY_COLOR) * $i / 10;
}
elseif ($i < 60)
{
$red = CLICKHEAT_LOW_COLOR;
}
elseif ($i < 85)
{
$red = CLICKHEAT_LOW_COLOR + (CLICKHEAT_HIGH_COLOR - CLICKHEAT_LOW_COLOR) * ($i - 60) / 35;
}
else
{
$red = CLICKHEAT_HIGH_COLOR;
}
/** Green */
if ($i < 10)
{
$green = CLICKHEAT_GREY_COLOR + (CLICKHEAT_LOW_COLOR - CLICKHEAT_GREY_COLOR) * $i / 10;
}
elseif ($i < 35)
{
$green = CLICKHEAT_LOW_COLOR + (CLICKHEAT_HIGH_COLOR - CLICKHEAT_LOW_COLOR) * $i / 35;
}
elseif ($i < 85)
{
$green = CLICKHEAT_HIGH_COLOR;
}
else
{
$green = CLICKHEAT_HIGH_COLOR - (CLICKHEAT_HIGH_COLOR - CLICKHEAT_LOW_COLOR) * ($i - 85) / 35;
}
/** Blue */
if ($i < 10)
{
$blue = CLICKHEAT_GREY_COLOR + (CLICKHEAT_HIGH_COLOR - CLICKHEAT_GREY_COLOR) * $i / 10;
}
elseif ($i < 35)
{
$blue = CLICKHEAT_HIGH_COLOR;
}
elseif ($i < 60)
{
$blue = CLICKHEAT_HIGH_COLOR - (CLICKHEAT_HIGH_COLOR - CLICKHEAT_LOW_COLOR) * ($i - 35) / 35;
}
else
{
$blue = CLICKHEAT_LOW_COLOR;
}
echo "R:".(int)$red.";&nbsp;&nbsp;&nbsp;&nbsp;G:".(int)$green.";&nbsp;&nbsp;&nbsp;&nbsp;B:".(int)$blue;
echo "<br />";
}
?>

  clickheat--version18:

<?php
$colors = array(50, 70, 90, 110, 120);
$low = 0;
$high = 255;
$grey = 240;
for ($i = 0; $i < 128; $i++)
{
/** Red */
if ($i < $colors[0])
{
$R = $grey + ($low - $grey) * $i / $colors[0];
}
elseif ($i < $colors[2])
{
$R = $low;
}
elseif ($i < $colors[3])
{
$R = $low + ($high - $low) * ($i - $colors[2]) / ($colors[3] - $colors[2]);
}
else
{
$R = $high;
}
/** Green */
if ($i < $colors[0])
{
$G = $grey + ($low - $grey) * $i / $colors[0];
}
elseif ($i < $colors[1])
{
$G = $low + ($high - $low) * ($i - $colors[0]) / ($colors[1] - $colors[0]);
}
elseif ($i < $colors[3])
{
$G = $high;
}
else
{
$G = $high - ($high - $low) * ($i - $colors[3]) / (127 - $colors[3]);
}
/** Blue */
if ($i < $colors[0])
{
$B = $grey + ($high - $grey) * $i / $colors[0];
}
elseif ($i < $colors[1])
{
$B = $high;
}
elseif ($i < $colors[2])
{
$B = $high - ($high - $low) * ($i - $colors[1]) / ($colors[2] - $colors[1]);
}
else
{
$B = $low;
}
echo "R:".(int)$R.";&nbsp;&nbsp;&nbsp;&nbsp;G:".(int)$G.";&nbsp;&nbsp;&nbsp;&nbsp;B:".(int)$B;
echo "<br />";
}
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362239-1-1.html 上篇帖子: PHP程序加速探索[5]--脚本执行速度测试2 下篇帖子: php 中this关键字 :: 符号 magic method
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表