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"
);
?>