利用php创建水中倒影的图片效果

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

< ?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:

Comments

No comments so far.
  • Leave a Reply
     
    Your gravatar
    Your Name
     
     
     
     
     
 
About This Website

Lamp development & SEO & Plan of Website & Project Managment

Learn more »
Follow Us (SNS)
Help & Support

more about Bruce.xu»

Get in touch

QQ: +252339382
Email: shjuto @ gmail.com

Online contact form »