imagick是一个功能强大的图像处理库。
说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子。
因为本人的英语水平有限,所以采用比较通俗或者说比较贴近应用化的语言来描述。
先欣赏一组炫丽的效果:
偏置图像:
例子:
复制代码 代码如下:
|
|
thumbnailImage($width,$height) 改变图片大小
例子:
复制代码 代码如下:
|
|
addNoiseImage(int $noise_type [, int $channel= Imagick::CHANNEL_ALL ]);
功能:
Adds random noise to the image
添加干扰素
复制代码 代码如下:
|
|
例子:
复制代码 代码如下:
|
|
annotateImage 创建文本图像
例子:
复制代码 代码如下:
|
|
blurImage(float $radius , float $sigma [, int $channel ])
Adds blur filter to image 图像模糊度处理
参数:
复制代码 代码如下:
|
|
复制代码 代码如下:
|
|
borderImage ( mixed $bordercolor , int $width , int $height ) 图片边框处理
例子:
复制代码 代码如下:
|
|
charcoalImage ( float $radius , float $sigma ) 图像素描处理
参数说明:
$radius :越小越薄。
$sigma: 越大 墨越深 反之。
例子:
复制代码 代码如下:
|
|
chopImage ( int $width , int $height , int $x , int $y )
参数说明:删除一定范围的图像区域
就不做参数说明,一看便知.
colorizeImage( mixed $colorize , mixed $opacity )混合填充颜色
$colorize 颜色
$opacit 透明度
例子:
复制代码 代码如下:
|
|
embossImage ( float $radius , float $sigma )
功能: 返回一个灰度级3D图像 不太好。
例子:
复制代码 代码如下:
|
|
(两张效果图)
flipImage(void)
功能: 创建图像倒影(垂直翻转)
例子:
复制代码 代码如下:
|
|
flopImage ( void )
功能: 图像水平横向翻转
复制代码 代码如下:
|
|
frameImage(mixed $matte_color,int $width, int $height,int $inner_bevel, int $outer_bevel)
功能:创建3D图像边框
参数说明:
$matte_color:颜色
$inner_bevel:边框内部倾斜度
$outer_bevel:外部边框倾斜度
例子:
复制代码 代码如下:
|
|
注意事项:
$width(宽度)不能小于$inner_bevel(边框内部倾斜度)
Imagick::gammaImage (float $gamma [,int $channel= Imagick::CHANNEL_ALL])
功能:调整图像灰度系数
参数说明:
float $gamma :灰度系数值
$channel 默认为 Imagick::CHANNEL_ALL
Imagick::CHANNEL_ALL
例子 1:
复制代码 代码如下:
|
|
例子 2:
复制代码 代码如下:
|
|
gaussianBlurImage ( float $radius , float $sigma [, int $channel= Imagick::CHANNEL_ALL ] )
功能:高斯模糊处理 类似于photo的高斯模糊
参数说明:
float $radius:高斯模糊的半径,像素,不包括中心象素。
float $sigma :高斯的标准偏差,以像素为单位。我觉得这个参数最重要。
int $channel :图像颜色模式。
复制代码 代码如下:
|
|
levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel= Imagick::CHANNEL_ALL ] )
功能: 调整图像的色阶(Adjusts the levels of an image)
参数说明
复制代码 代码如下:
|
|
例子2:
复制代码 代码如下:
|
|
magnifyImage( void )
功能说明:简便的图像等比例放大2倍(Is a convenience method that scales an image proportionally to twice its original size. )
例子:
复制代码 代码如下:
|
|
medianFilterImage ( float $radius )
功能:特是的滤镜 有点像photoshop 调色刀滤镜
复制代码 代码如下:
|
|
minifyImage(void)
功能:图小缩小一倍(Scales an image proportionally to half its size)
例子:
复制代码 代码如下:
|
|
modulateImage ( float $brightness , float $saturation , float $hue )
功能:控制调整图像的 亮度、饱和度、色调。
参数说明:
float $brightness: 亮度
float $saturation :饱和度
float $hue 色调
例子1:
复制代码 代码如下:
|
|
例子2:
复制代码 代码如下:
|
|
motionBlurImagemotionBlurImage ( float $radius , float $sigma , float $angle [, int $channel= Imagick::CHANNEL_DEFAULT ] )
功能:模拟运动模糊(Simulates motion blur) ,类似photoshop的动感模糊滤镜功能
参数说明:
float $radius: 高斯 半径,不包过中心像素。
float $sigma:标准偏差的高斯,以像素为单位。【重要参数】
float $angle:模糊角度。
int $channel:图像颜色模式。默认为 Imagick::CHANNEL_DEFAULT
例子1:
复制代码 代码如下:
|
|
例子2:
复制代码 代码如下:
|
|
oilPaintImage ( float $radius ):
功能说明: 模拟油画滤镜(Simulates an oil painting)
例子:
复制代码 代码如下:
|
|
radialBlurImage ( float $angle [, int $channel= Imagick::CHANNEL_ALL ] )
功能: 径向模糊(Radial blurs an image)
复制代码 代码如下:
|
|
raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
功能说明:创建3D图像按钮(Creates a simulated 3d button-like effect)
复制代码 代码如下:
|
|
附1:要求缩小图片尺寸、增加半透明边框,读入exif信息,按指定要求显示在图片上
复制代码 代码如下:
|
|
附2:处理图片水印
复制代码 代码如下:
<?php
//获取水印图片
$logo = new Imagick("logo.png");
$logo->setImageResolution(0.01,0.03);
//创建一个Imagick对象,同时获取要处理的源图
$im = new Imagick( "old_large_img_2.jpg" );
//获取源图片宽和高
$srcWH = $im->getImageGeometry();
//图片等比例缩放宽和高设置
if($srcWH['width']>710){
$srcW['width'] = 710;
$srcH['height'] = $srcW['width']/$srcWH['width']*$srcWH['height'];
}else{
$srcW['width'] = $srcWH['width'];
$srcH['height'] = $srcWH['height'];
}
//按照比例进行缩放
$im->thumbnailImage( $srcW['width'], $srcH['height'], true );
// 按照缩略图大小创建一个有颜色的图片
$canvas = new Imagick();
$canvas->newImage( $srcW['width'], $srcH['height'], 'black', 'jpg' ); //pink,black
//添加水印
$im->compositeImage($logo,Imagick::COMPOSITE_OVER,$srcW['width']-280,$srcH['height']-77);
$canvas->setcompressionquality(91);
//合并图片
$canvas->compositeImage( $im, imagick::COMPOSITE_OVER, 0, 0);
//输出图片
header( "Content-Type: image/jpg" );
echo $canvas;
//生成图片
$canvas->writeImage( "test_img/old_large_img_2_96.jpg" );
?>
本文介绍了使用PHP扩展Imagick进行图像处理的各种实用技巧,包括图像缩放、添加边框、模拟各种图像效果等,并提供了丰富的代码示例。
6979

被折叠的 条评论
为什么被折叠?



