thinkphp3.2 图片平均颜色值
- public function imgColor($imgUrl) {
- $imageInfo = getimagesize($imgUrl);
- //图片类型
- $imgType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));
- //对应函数
- $imageFun = 'imagecreatefrom' . ($imgType == 'jpg' ? 'jpeg' : $imgType);
- $i = $imageFun($imgUrl);
- //循环色值
- $rColorNum=$gColorNum=$bColorNum=$total=0;
- for ($x=0;$x<imagesx($i);$x++) {
- for ($y=0;$y<imagesy($i);$y++) {
- $rgb = imagecolorat($i,$x,$y);
- //三通道
- $r = ($rgb >> 16) & 0xFF;
- $g = ($rgb >> 8) & 0xFF;
- $b = $rgb & 0xFF;
- $rColorNum += $r;
- $gColorNum += $g;
- $bColorNum += $b;
- $total++;
- }
- }
- $rgb = array();
- $rgb['r'] = round($rColorNum/$total);
- $rgb['g'] = round($gColorNum/$total);
- $rgb['b'] = round($bColorNum/$total);
- return $rgb;
- }
- //将rgb颜色值转为16进制
- public function rgb2html($r, $g=-1, $b=-1)
- {
- if (is_array($r) && sizeof($r) == 3)
- list($r, $g, $b) = $r;
- $r = intval($r); $g = intval($g);
- $b = intval($b);
- $r = dechex($r<0?0:($r>255?255:$r));
- $g = dechex($g<0?0:($g>255?255:$g));
- $b = dechex($b<0?0:($b>255?255:$b));
- $color = (strlen($r) < 2?'0':'').$r;
- $color .= (strlen($g) < 2?'0':'').$g;
- $color .= (strlen($b) < 2?'0':'').$b;
- return '#'.$color;
- }
- //RGB转hsv
- //hsv的v貌似是用来判断明暗的,我用这个是为了图片的字体水印灵活使用黑白两色
- function RGB_TO_HSV ($R, $G, $B) // RGB Values:Number 0-255
- { // HSV Results:Number 0-1
- $HSL = array();
- $var_R = ($R / 255);
- $var_G = ($G / 255);
- $var_B = ($B / 255);
- $var_Min = min($var_R, $var_G, $var_B);
- $var_Max = max($var_R, $var_G, $var_B);
- $del_Max = $var_Max - $var_Min;
- $V = $var_Max;
- if ($del_Max == 0)
- {
- $H = 0;
- $S = 0;
- }
- else
- {
- $S = $del_Max / $var_Max;
- $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
- $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
- $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max;
- if ($var_R == $var_Max) $H = $del_B - $del_G;
- else if ($var_G == $var_Max) $H = ( 1 / 3 ) + $del_R - $del_B;
- else if ($var_B == $var_Max) $H = ( 2 / 3 ) + $del_G - $del_R;
- if ($H<0) $H++;
- if ($H>1) $H--;
- }
- $HSL['H'] = $H;
- $HSL['S'] = $S;
- $HSL['V'] = $V;
- return $HSL;
- }
thinkphp3.2 图片平均颜色值的更多相关文章
- php获取图片RGB颜色值的例子
php获取图片RGB颜色值的例子 很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片. 之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RG ...
- PHP 图片 平均分割
$filename = 'D://WWW/1.jpg'; $p = 5; // Get new sizes list($width, $height) = getimagesize($filename ...
- swift获取图片像素颜色值
extension UIImage{ /** 获取图片中的像素颜色值 - parameter pos: 图片中的位置 - returns: 颜色值 */ func getPixelColor(pos: ...
- Android 动态改变图片的颜色值
public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt1: img1.setColorFilter(ge ...
- ImageMagick:用identify得到图片的平均颜色(基本颜色/主色调)
一,平均颜色的用途: 很多app在流式的展示图片时, 在图片没加载出来之前, 不是使用统一的背景图, 而是先显示一个纯色的背景, 而背景色和图片的颜色非常接近, 这样给用户的体验会更好. 我们这里演示 ...
- iOS 开发之提取图片的主色调用于更换应用主题颜色
从刷爆 IT 圈的一个事件说起: 新闻:某互联网公司产品经理提出一个需求--要求APP开发人员做到软件根据用户的手机壳改变软件的主题颜色. What Fuck!还有这操作,PM,你过来,保证不打屎你. ...
- 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势
A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...
- android图片处理方法
Java代码 //压缩图片大小 public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ...
- 【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势
A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...
随机推荐
- Myeclipse学习总结(3)——Myeclipse中的代码格式化、注释模板及保存时自动格式化
设置Myeclipse中的代码格式化.注释模板及保存时自动格式化 1:设置注释的模板: 下载此模板: codetemplates.xml This XML file does not appear ...
- Spring项目用junit 时出现org.junit.runners.BlockJUnit4ClassRunner cannot be resolved(转)
spring框架项目用junit做测试时,程序在自动编译时出现下述问题: 程序的问题是项目中找不到org.junit.runners.BlockJUnit4ClassRunner,有两种可能,一是没有 ...
- 洛谷——P2984 [USACO10FEB]给巧克力Chocolate Giving
https://www.luogu.org/problem/show?pid=2984 题目描述 Farmer John is distributing chocolates at the barn ...
- using可以用于释放操作,相当于Dispose()
using可以用于释放操作,相当于Dispose()
- CISP/CISA 每日一题 六
CISA 每日一题(答) 采用电子数据交换 EDI 的好处: 1.较少的书面工作: 2.较少的信息交换错误: 3.改善了数据库到数据库.公司到公司的信息流: 4.没有多余的数据重新键入: 5.较少的通 ...
- ASP.Net MVC Filter验证用户登录
一.Filter是什么 ASP.NetMVC模式自带的过滤器Filter,是一种声明式编程方式,支持四种过滤器类型,各自是:Authorization(授权),Action(行为),Result(结果 ...
- 9.Spring Boot实战之配置使用Logback进行日志记录
转自:https://blog.csdn.net/meiliangdeng1990/article/details/54300227 Spring Boot实战之配置使用Logback进行日志记录 在 ...
- amazeui学习笔记--css(常用组件4)--关闭按钮Close
amazeui学习笔记--css(常用组件4)--关闭按钮Close 一.总结 1.关闭按钮基本用法:关闭按钮样式,可以结合其他不同组件使用.对 <a> 或者 <button> ...
- stm32关于.o的错误
是因为没有加入官方库的原因,而且编译出错之后不能跳转到那里.
- 编程——C语言的问题,堆栈
堆和栈的区别一.预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结 ...