Использование прозрачного PNG в качестве маски для клипа

Можно ли взять это изображение:

image1 http://img.ruphp.com/php/2d8neo0.png

И примените эту маску:

маска http://img.ruphp.com/php/2091450.png

И превратите это в это:

image2 http://img.ruphp.com/php/23m7apv.png

Используя GD или Imagick? Я знаю, что можно маскировать изображение с помощью фигур, но я не уверен, как это сделать с заранее созданным альфа-прозрачным изображением. : s

Использование Imagick и ImageMagick версии> 6 (я не знаю, будет ли это работать в более старых версиях):

// Set image path $path = '/path/to/your/images/'; // Create new objects from png's $dude = new Imagick($path . 'dude.png'); $mask = new Imagick($path . 'dudemask.png'); // IMPORTANT! Must activate the opacity channel // See: http://www.php.net/manual/en/function.imagick-setimagematte.php $dude->setImageMatte(1); // Create composite of two images using DSTIN // See: http://www.imagemagick.org/Usage/compose/#dstin $dude->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0); // Write image to a file. $dude->writeImage($path . 'newimage.png'); // And/or output image directly to browser header("Content-Type: image/png"); echo $dude; 

Я думаю, вы ищете изображение . Я использую его для водяных знаков, и я считаю, что он сделает тот эффект, который вы ищете.

Отличная работа с (ImageMagick) НЕ GD .. Я вижу, что теги этого вопроса – GD !!

Вот версия GD по этой ссылке: PHP GD Используйте одно изображение для маскировки другого изображения, включая прозрачность