php 使用 imagick 处理图片--获取图片颜色等高级处理
来源:互联网 发布:增值税发票计算软件 编辑:程序博客网 时间:2024/05/29 10:51
要用PHP建立分析图片颜色的程序,需要安装imagick扩展,这个一个pecl扩展,可以进行很多高级的图片操作,有兴趣的话可以仔细研究研究。
例如可以获取一张图片的多种颜色。
下面介绍如何安装和使用:
我的PHP版本为5.2.9,Apache 版本为2.0,win环境。我安装的Imagick的版本为2.2.1.
请分别下载下面三个资源文件:(我已经上传到资源库中,可以点击下载)
- php-5.2.4_magickwand_q16_st.dll
- php-5.2.4_magickwand_dyn.dll
- php_imagick.dll
然后放置在php/ext 文件夹中,接着在 php.ini 文件夹中 配置 如下
extension=php-5.2.4_magickwand_q16_st.dll
extension=php_imagick.dll
下面介绍如何使用:
这里是imagick的函数库文档:http://cn2.php.net/imagick
举例代码:
<?php$average = new Imagick("3dcf97dac6ff58cc692846acaae37060.png");$average->quantizeImage( 10, Imagick::COLORSPACE_RGB, 0, false, false );/* 每个颜色取样一个像素 */$average->uniqueImageColors();/* 克隆对象并调节到明色*/$bright = $average->clone();$bright->modulateImage ( 125, 200, 100 );/* 克隆对象并调节到暗色 */$dark = $average->clone();$dark->modulateImage ( 80, 100, 100 );/* 建立图片函数 */function createImages( Imagick $composite, Imagick $im ){ /* Get ImagickPixelIterator */ $it = $im->getPixelIterator(); /* Reset the iterator to begin */ $it->resetIterator(); /* Loop trough rows */ while( $row = $it->getNextIteratorRow() ) { /* Loop trough columns */ foreach ( $row as $pixel ) { /* Create a new image which contains the color */ $composite->newImage( 20, 20, $pixel ); $composite->borderImage( new ImagickPixel( "black" ), 1, 1 ); } }}/*创建一个图片以保存颜色 */$composite = new Imagick();createImages( $composite, $dark );createImages( $composite, $average );createImages( $composite, $bright );/* 组合颜色到一个图片 */$montage = $composite->montageImage( new imagickdraw(), "10x3+0+0", "20x20+4+3>", imagick::MONTAGEMODE_UNFRAME, "0x0+3+3" );/* 释放资源 */$composite->destroy();/* 建立空图片 */$canvas = new Imagick();$canvas->newImage( $montage->getImageWidth() + 55, $montage->getImageHeight(), new ImagickPixel( "white" ) );/* 设置图片格式 */$canvas->setImageFormat( "png" );/* 设置字体大小 */$draw = new ImagickDraw();$draw->setFontSize( 12 );/* 为每个调色板建立标签 */$canvas->annotateImage( $draw, 5, 20, 0, "Dark: " );$canvas->annotateImage( $draw, 5, 45, 0, "Average: " );$canvas->annotateImage( $draw, 5, 70, 0, "Bright: " );/* 整合调色板和标签*/$canvas->compositeImage( $montage, Imagick::COMPOSITE_OVER, 55, 0 );/* 输出图片 */header( "Content-Type: image/png" );echo $canvas;?>
- php 使用 imagick 处理图片--获取图片颜色等高级处理
- php ImageMagick imagick 图片处理
- ImageMagick+ PHP IMagick 图片压缩处理
- php图片处理扩展imagick和gmagick
- PHP Imagick 图片合成 圆角处理
- php使用Imagick获取图片主色调
- Imagick处理图片简单demo
- 图片处理神器ImageMagick以及PHP的imagick扩展
- 图片处理神器ImageMagick以及PHP的imagick扩展
- centos安装php扩展imagick-高性能处理图片
- j2me图片颜色处理
- 图片的颜色处理
- android图片颜色处理
- php使用Imagick给图片写文字加阴影效果
- PHP中使用Imagick实现各种图片效果实例
- PHP图片处理类
- php 图片处理类
- php 图片处理类
- 一位大牛整理的Python资料
- Cocos2d里面如何使用Texture Packer和像素格式来优化spritesheet
- Oracle中创建存储过程基本语法
- 数据仓库之拉链算法—20120508(转载)
- 2012年Web设计和开发的15个趋势
- php 使用 imagick 处理图片--获取图片颜色等高级处理
- java通过JNative调用.dll文件
- PHP数组键值双引号单引号区别
- SAX解析XML
- ZOJ_3228 Searching the String AC自动机
- 用vb绘制图形并使其运动
- Linux查看与设置CPU频率
- glFlush 和glSwapBuffer
- poj 2966 A safe way