PHP:如何使用alpha蒙版为图像创建阴影

时间:2012-09-28 13:48:46

标签: php image-processing gd alpha-transparency

我有一个带alpha蒙版的PNG图像。我想为这个图像生成一个阴影,它将使用alpha蒙版。

a picture is worth thousand words http://www.brunet.fr/alpha.jpg

我想我需要:

  1. 从第一张图片中获取alpha蒙版
  2. 用适当的颜色填充,并将其模糊
  3. 创建一个新的空白图像
  4. 首先使用阴影和第一张图像进行构图
  5. 但我找不到任何提示,尤其是第一部分。

    编辑:我找到了答案的开始here我试着告诉你。

    由于

1 个答案:

答案 0 :(得分:1)

首先,您需要安装名为Imagick

的php ext
<?php 
/* Read the image into the object */ 
$im = new Imagick( 'a.png' ); 
$im->setImageFormat("png"); 

/* Make the image a little smaller, maintain aspect ratio */ 
$im->thumbnailImage( 200, null ); 

/* Clone the current object */ 
$shadow = $im->clone(); 

/* Set image background color to black 
        (this is the color of the shadow) */ 
$shadow->setImageBackgroundColor( new ImagickPixel( 'black' ) ); 

/* Create the shadow */ 
$shadow->shadowImage( 80, 3, 5, 5 ); 

/* Imagick::shadowImage only creates the shadow. 
        That is why the original image is composited over it */ 
$shadow->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 ); 

/* Display the image */ 
header( "Content-Type: image/png" ); 
echo $shadow;