文档章节

php获取图片RGB颜色值的例子

mysoftsky
 mysoftsky
发布于 2014/07/29 05:45
字数 288
阅读 221
收藏 0

php获取图片RGB颜色值的例子

很多图片站点都会根据用户上传的图片检索出图片的主要颜色值,然后在通过颜色搜索相关的图片。

之前按照网上的方法将图片缩放(或者马赛克)然后遍历每个像素点,然后统计处RGB次数最多的值,这做法效率太低而且取到的RGB值不够精确。之后才发现使用Imagick的quantizeImage方法能够很方便的取到图片中平均的RGB值.

$average = new Imagick("xiaocai.jpg");$average->quantizeImage( 10, Imagick::COLORSPACE_RGB, 0, false, false );$average->uniqueImageColors();function GetImagesColor( Imagick $im ){$colorarr = array();$it = $im->getPixelIterator();$it->resetIterator();while( $row = $it->getNextIteratorRow() ){foreach ( $row as $pixel ){
// www.jbxue.com$colorarr[] = $pixel->getColor();

}

}return $colorarr;

}$colorarr = GetImagesColor($average);foreach($colorarr as $val){echo "<div style='background-color: rgb({$val['r']},{$val['g']},{$val['b']});width:50px;height:50px;float:left;'></div>";

}

您可能感兴趣的文章:


本文转载自:

共有 人打赏支持
mysoftsky
粉丝 7
博文 176
码字总数 4429
作品 0
廊坊
私信 提问
Android MediaCodec图片合成视频

利用MediaCodec可以录制视频,可是可以将图片合成视频吗?之前使用ffmpeg来实现。但是,ffmpeg却是c++写的,而且非常占用内存,虽然它是非常棒的音视频处理库,但是杀鸡焉用牛刀,所以今天就...

陨石坠灭
2018/12/11
0
0
Android图片处理:颜色矩阵和坐标变换矩阵

UI开发过程中,我们经常需要对图片进行处理,常见的如贴图,复杂一些的还有位置变换、旋转、滤镜特效等,下面简单介绍一下关于图片处理的一些基本知识和原理。 1 基本概念 对于图片的处理,最...

yolinfeng
2015/04/29
0
0
Android Palette颜色提取

Palette介绍 Palette是Google在5.0中引入的来获取bitmap颜色值的一个工具类,为了兼容以前的版本,所以放在Support v7 Library中,在使用该类之前,需要在gradle中添加引用。Palette顾名思义...

IamOkay
2018/04/03
0
0
如何正确的从UI图中取色

在移动开发过程中,从UI图上获取颜色是日常开发中常有的事。不过从图片获取颜色也有很多种操作方式,很多人在日常中取到的并不是“正确”的值。 上策:避免从图片中取值 最好的情况就是不需要...

没故事的卓同学
2017/10/30
0
0
graphite-web render api

Render API Graphite web 提供了/render API用来生成图片和获取原始数据。这个API通过查询字符串支持各种参数。参数之间通过&进行分割,如下所示: 你可以通过访问http://GRAPHITEHOST:GRAPH...

摩云菜
2016/06/30
281
0

没有更多内容

加载失败,请刷新页面

加载更多

【机器学习PAI实战】—— 玩转人工智能之商品价格预测

摘要: 我们经常思考机器学习,深度学习,以至于人工智能给我们带来什么?在数据相对充足,足够真实的情况下,好的学习模型可以发现事件本身的内在规则,内在联系。我们去除冗余的信息,可以...

zhaowei121
25分钟前
2
0
Spring拓展接口之FactoryBean,我们来看看其源码实现

是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身...

java菜分享
28分钟前
3
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

阿里云官方博客
35分钟前
1
0
深入理解 Hive 分区分桶 (Inceptor)

分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查...

hblt-j
43分钟前
0
0
数据结构

什么是数据结构 1、数据 数据是描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。简言之,数据就是计算机加工处理的原料,是信息的载体。 2、数据...

stars永恒
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部