利用php创建水中倒影的图片效果
在前面给大家介绍了imagick在ubuntu下的基本安装,及简单的处理图片,今天尝试使用imgaick来创建水中倒影的效果.

< ?php /** * reflection * */ function reflection($image){ /* 读取原图片 */ $im = new Imagick($image); /* 创建缩图 */ $im->thumbnailImage( 200, null ); /*加边框 */ $im->borderImage( "white", 5, 5 ); /* 克隆并创建镜像图片 */ $reflection = $im->clone(); $reflection->flipImage(); /* 创建一个滤镜效果,合成 */ $gradient = new Imagick(); $gradient->newPseudoImage( $reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black" ); /*合成 */ $reflection->compositeImage( $gradient, imagick::COMPOSITE_OVER, 0, 0 ); /* 设置透明度*/ $reflection->setImageOpacity( 0.3 ); /* 创建一个空白背景图层,足够大 */ $canvas = new Imagick(); $width = $im->getImageWidth() + 40; $height = ( $im->getImageHeight() * 2 ) + 30; $canvas->newImage( $width, $height, "black", "png" ); /* 合成最终效果图*/ $canvas->compositeImage( $im, imagick::COMPOSITE_OVER, 20, 10 ); $canvas->compositeImage( $reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10 ); /* 输出图片*/ header( "Content-Type: image/png" ); echo $canvas; } reflection('me.jpg'); ?>
Tags: imagick










Comments