首页  >  文章  >  php教程  >  PHP中使用Imagick实现各种图片效果实例

PHP中使用Imagick实现各种图片效果实例

WBOY
WBOY原创
2016-06-06 20:13:251068浏览

这篇文章主要介绍了PHP中使用Imagick实现各种图片效果实例,本文讲解了偏置图像、改变图片大

imagick是一个功能强大的图像处理库。 
说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子。 
因为本人的英语水平有限,所以采用比较通俗或者说比较贴近应用化的语言来描述。 
先欣赏一组炫丽的效果:  

偏置图像:  

例子: 

复制代码 代码如下:

 
ini_set('display_errors',1); 
header('Content-type: image/jpeg'); 
$image = new Imagick('1.jpg'); 
$image->rollImage(20,39); 
echo $image; 
?> 

 

thumbnailImage($width,$height) 改变图片大小 
例子: 

复制代码 代码如下:


ini_set('display_errors',1); 
header('Content-type: image/jpeg'); 
$image = new Imagick('1.jpg'); 
$image->thumbnailImage(100,0); 
echo $image; 
?> 

addNoiseImage(int $noise_type [, int $channel= Imagick::CHANNEL_ALL ]); 
功能: 
Adds random noise to the image 
添加干扰素 

复制代码 代码如下:


Noise constants ( $noise_type 类型) 
imagick::NOISE_UNIFORM (integer) 
imagick::NOISE_GAUSSIAN (integer) 
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer) 
imagick::NOISE_IMPULSE (integer) 
imagick::NOISE_LAPLACIAN (integer) 
imagick::NOISE_POISSON (integer) 
Channel constants ( $channel 类型) 
imagick::CHANNEL_UNDEFINED (integer) 
imagick::CHANNEL_RED (integer) 
imagick::CHANNEL_GRAY (integer) 
imagick::CHANNEL_CYAN (integer) 
imagick::CHANNEL_GREEN (integer) 
imagick::CHANNEL_MAGENTA (integer) 
imagick::CHANNEL_BLUE (integer) 
imagick::CHANNEL_YELLOW (integer) 
imagick::CHANNEL_ALPHA (integer) 
imagick::CHANNEL_OPACITY (integer) 
imagick::CHANNEL_MATTE (integer) 
imagick::CHANNEL_BLACK (integer) 
imagick::CHANNEL_INDEX (integer) 
imagick::CHANNEL_ALL (integer) 


例子:

复制代码 代码如下:


ini_set('display_errors',1); 
header('Content-type: image/jpeg'); 
$image = new Imagick('1.jpg'); 
$image->thumbnailImage(100,0); 
$image->addNoiseImage(imagick::NOISE_POISSON,imagick::CHANNEL_OPACITY); 
echo $image; 
?> 

  
annotateImage 创建文本图像 

例子: 

复制代码 代码如下:


$image = new Imagick(); 
$draw = new ImagickDraw(); 
$pixel = new ImagickPixel( 'gray' ); 
$image->newImage(800, 75, $pixel); 
$pixel->setColor('black'); 
$draw->setFont('Bookman-DemiItalic'); 
$draw->setFontSize( 30 ); 
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog'); 
$image->setImageFormat('png'); 
header('Content-type: image/png'); 
echo $image; 
?> 

blurImage(float $radius , float $sigma [, int $channel ]) 
Adds blur filter to image 图像模糊度处理 
参数: 

复制代码 代码如下:


int $channel : 
imagick::CHANNEL_UNDEFINED (integer) 
imagick::CHANNEL_RED (integer) 
imagick::CHANNEL_GRAY (integer) 
imagick::CHANNEL_CYAN (integer) 
imagick::CHANNEL_GREEN (integer) 
imagick::CHANNEL_MAGENTA (integer) 
imagick::CHANNEL_BLUE (integer) 
imagick::CHANNEL_YELLOW (integer) 
imagick::CHANNEL_ALPHA (integer) 
imagick::CHANNEL_OPACITY (integer) 
imagick::CHANNEL_MATTE (integer) 
imagick::CHANNEL_BLACK (integer) 
imagick::CHANNEL_INDEX (integer) 
imagick::CHANNEL_ALL (integer) 


复制代码 代码如下:


ini_set('display_errors',1); 
header('Content-type: image/jpeg'); 
$image = new Imagick('1.jpg'); 
$image->blurImage(5,3); 
echo $image; 
?> 


borderImage ( mixed $bordercolor , int $width , int $height ) 图片边框处理 
例子: 

复制代码 代码如下:


ini_set('display_errors',1); 
header('Content-type: image/jpeg'); 
$image = new Imagick('1.jpg'); 
$color=new ImagickPixel(); 
$color->setColor("rgb(220,220,220)"); 
$image->borderImage($color,5,4); 
 
$image->blurImage(5,5,imagick::CHANNEL_GREEN); 
echo $image; 
?> 

charcoalImage ( float $radius , float $sigma ) 图像素描处理 
参数说明: 
$radius :越小越薄。 
$sigma: 越大 墨越深 反之。 
例子: 

复制代码 代码如下:

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn