Bir klip maske olarak şeffaf PNG kullanma

3 Cevap php

Bu görüntü almak mümkündür:

image1

Ve bu maskeyi uygulayın:

mask

Ve bu çevirmek:

image2

GD veya iMagic kullanarak? Ben bu şekilleri kullanarak bir görüntü maskelemek mümkün biliyorum ama önceden oluşturulmuş alphatransparent görüntü ile yapıyor hakkında gitmek nasıl emin değilim. : S

3 Cevap

IMagic ve> 6 ImageMagick sürümünü (eski versiyonları üzerinde çalışacak eğer ben bilmiyorum) kullanarak:

// 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;

Sana imagealphablending arıyoruz düşünüyorum. Ben filigranlı için kullanmak, ve ben aradığınız etkiyi yapacağına inanıyorum.

(Imagemagick) ile harika bir iş DEĞİL GD .. ben bu sorunun etiketleri görmek GD olduğunu!

Here is a GD version at this link: PHP GD Use one image to mask another image, including transparency