PHP调整图片饱和度,php使用Imagick获取图片主色调
使用php+imagick扩展 来获取图片主色调
引子
做为一个野路子的程序员, 看到其他app上的一些功能点 总爱去试试
前两天在用快手的app, 发现视频列表展示的图片在还没加载出来的时候
不像通常做法放一个默认的背景图, 而是用了一个纯色背景
等图片加载出来时候 发现纯色背景跟图片颜色很接近
尝试
个人感觉像是使用了 图片主色调或者图片 点最多的颜色值
实现思路最开始是 遍历整幅图片(或者通过获取图片颜色直方图,然后遍历直方图), 将每个点颜色进行记录 然后进行获取颜色值最多的,或者平均值之类
但是发现一张图片运行下来需要很长时间
代码
经过尝试, php + imagick 有方法可以直接提取主色调, 记录
$image = new \Imagick($file); //$file 图片存储地址或者url地址
$image->quantizeImage(1, \Imagick::COLORSPACE_RGB, 0, false, false); //获取到只剩1个颜色值, 也可以多取几个
$image->uniqueImageColors();
$iter = $image->getPixelIterator();
$iter->resetIterator();
$row = $iter->getNextIteratorRow();
$color = $row[0]->getColor(); //获取到第一个颜色点的颜色
echo $color['r'];
echo $color['g'];
echo $color['b'];
简单的处理, 就可以得到 近似主观主色调的颜色了.
产品上使用的时候 可以通过调整颜色的饱和度或者亮度 来让颜色更利于展示
效果对比
扒取了快手的数据 效果对比:
快手具体使用的什么方法就不知道了.
不过这个简单的方法可以用在一些简单的场景, 对于量级不是很大的地方完全ok
输出颜色名称
获取到颜色值 感觉还不够,主色到底是 红色,蓝色,黑色 还是神马的。得描述出来
颜色rgb来对应颜色名称, 0-255,0-255,0-255 有N多中组合
这里尝试 利用HSL值 来区分颜色名称 $hsl = $row[0]->getHSL();
PHP调整图片饱和度,php使用Imagick获取图片主色调相关推荐
- 实现图片中文的识别和获取图片上文字的坐标(java实现)
实现图片中文的识别和获取图片上文字的坐标(java实现) 现在利用python来进行图片的文字识别较为普遍,但是如果我们利用常用的家庭电脑来识别,需要的时间比较长,达到20~30 ...
- 如何在Python中获取图片分辨率?——Python实现获取图片分辨率的代码及详解。
如何在Python中获取图片分辨率?--Python实现获取图片分辨率的代码及详解. 在进行图片处理或者图片分析的时候,获取图片的分辨率信息是必不可少的.Python提供了许多库可以方便地获取图片的分 ...
- python 通过图片(原图)精确获取图片拍摄的位置
想要悄悄的获取某人的位置,只需通过拍摄的照片,就能可以实现. 此方法需要用到识别图片元数据的库. pip3 install exifread 1. 粗获取 获取拍摄照片的经纬度,时间,设备信息.这里使 ...
- Unity for IOS 加载手机相册图片以及打开相机拍照获取图片
Unity for IOS 加载手机相册图片以及打开相机拍照获取图片 最近想做一个使用unity for IOS获取手机图片的功能,所以就研究了一下 这里我们需要创建两个objective-c文件,最 ...
- python下载图片并保存_Python爬虫获取图片并下载保存至本地的实例
1.抓取煎蛋网上的图片. 2.代码如下: import urllib.request import os #to open the url def url_open(url): req=urllib. ...
- iOS 根据图片URL从本地相册获取图片
最近做一个聊天的项目,需要发送图片后读取本地图片显示到列表里.刚开始的时候,天真的认为可以用SDWebImage直接加载,然后并不能行. 于是在网上搜了搜,如何根据从相册获取的UIImagePicke ...
- jquery 获取元素图片_【jQuery】获取图片真实宽高
jQuery有没有获取图片实际尺寸的方法? 就是图片文件的实际尺寸,而不是添加了css样式之后的尺寸. 肥肠真实,如假包换! //code from http://caibaojian.com/jqu ...
- php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码
如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...
- python 通过图片(原图)精确获取图片拍摄的位置,时间,设备等信息
想要悄悄的获取某人的位置,只需通过她拍摄的照片,就能可以实现.此方法需要用到识别图片元数据的库.这里操作是在虚拟机ubuntu上,使用python最好是在3.6及以上. pip3 install ex ...
最新文章
- 解决机器学习问题的一般流程
- linux 下修改最大文件数
- php多分支结构 案例,第4天 PHP分支、循环结构
- 微服务指南走北(五):什么样的服务才可以说是微服务?
- 运行cmd状态下MySQL导入导出.sql文件
- IOS沙盒中的Documents、Library、tmp区别
- db h2 数据类型_H2数据库函数及数据类型概述
- MySQL Date and Time Functions(日期和时间)
- php7 runkit,runkit - PHP 7 中文文档
- AngularJs的TDD
- Jackson的JSON转对象,忽略不需要的字段
- PSP看电视软件测试,实战测试:PSP上运行Windows 95
- Android 动画之 View动画 和 帧动画
- 心田花开:小学三年级语文下册古诗词整理【全】
- PB 各种小技巧(二)
- 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
- 继被Twitter永久封杀后!Sci-Hub再遭英国网络运营商封禁!
- 弘辽科技:商家直通车操作
- 如何调整图片像素大小
- 解决WiFi信号弱小妙招