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

直接上代码:

PHP代码
  1. < ?php  
  2. /** 
  3.  * reflection  
  4.  *  
  5. */  
  6.    
  7. function reflection($image){  
  8.     /* 读取原图片 */  
  9.     $im = new Imagick($image);  
  10.    
  11.     /* 创建缩图 */  
  12.     $im->thumbnailImage( 200, null );  
  13.    
  14.     /*加边框 */  
  15.     $im->borderImage( "white", 5, 5 );  
  16.    
  17.     /* 克隆并创建镜像图片 */  
  18.     $reflection = $im->clone();  
  19.     $reflection->flipImage();  
  20.    
  21.     /* 创建一个滤镜效果,合成 */  
  22.     $gradient = new Imagick();  
  23.    
  24.     $gradient->newPseudoImage( $reflection->getImageWidth() + 10,  
  25.                                $reflection->getImageHeight() + 10,  
  26.                                "gradient:transparent-black"  
  27.                             );  
  28.    
  29.     /*合成 */  
  30.     $reflection->compositeImage( $gradient, imagick::COMPOSITE_OVER, 0, 0 );  
  31.    
  32.     /* 设置透明度*/  
  33.     $reflection->setImageOpacity( 0.3 );  
  34.    
  35.     /* 创建一个空白背景图层,足够大 */  
  36.     $canvas = new Imagick();  
  37.     $width = $im->getImageWidth() + 40;  
  38.     $height = ( $im->getImageHeight() * 2 ) + 30;  
  39.     $canvas->newImage( $width$height"black""png" );  
  40.    
  41.     /* 合成最终效果图*/  
  42.     $canvas->compositeImage( $im, imagick::COMPOSITE_OVER, 20, 10 );  
  43.     $canvas->compositeImage( $reflection, imagick::COMPOSITE_OVER,  
  44.                             20, $im->getImageHeight() + 10 );  
  45.    
  46.     /* 输出图片*/  
  47.     header( "Content-Type: image/png" );  
  48.     echo $canvas;  
  49. }  
  50. reflection('me.jpg');  
  51. ?>  


上一篇: 解决php网站服务器内存耗尽方法
下一篇: Asp从长关键字中提取关键字根
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2060
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑