利用php创建水中倒影的图片效果
作者:admin 日期:2012-04-25
直接上代码:
PHP代码
- < ?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');
- ?>
评论: 0 | 引用: 0 | 查看次数: 2060
发表评论
广告位