9
votes

En utilisant un PNG transparent comme masque de clip

est-il possible de prendre cette image:

 image1

et appliquer ce masque:

 masque

et transformez-le dans ceci:

 image2

Utiliser GD ou Imagick? Je sais qu'il est possible de masquer une image à l'aide de formes, mais je ne sais pas comment continuer à le faire avec une image alphatransparent pré-créée. : s


1 commentaires

Je viens de faire des recherches et apparemment, je pourrais peut-être utiliser le wartimage ( warimage.sourceforge.net ) Bibliothèque pour faire ça. Mais y a-t-il un moyen plus simple que d'utiliser une bibliothèque respectueuse de cette fonctionnalité?


3 Réponses :


1
votes

Je pense que vous recherchez NOPELABLUMENDANT . Je l'utilise pour les filigranes, et je crois que cela fera l'effet que vous recherchez.


2 commentaires

Non, je ne crois pas que ça fait. Je ne fusingons pas des images, j'utilise une image pour masquer une image existante. L'image de résultat est alphatatransparent.


Inverser votre masque. Faire le centre trans, et les bords disparaissent au blanc. Recommandez ensuite votre image à la taille du masque. Cela suppose un fond blanc bien sûr. Si White n'est pas fonctionnel, faites-vous noir et blanc? Si tel est le cas, prenez une couleur étrange (rose vif ou chroma vert, qui peut fonctionner si vous avez une couleur aussi bien). Faire la vraie image couleur et le masque de couleur, puis définissez la couleur de la palette transparente. Donc, oui, je pense que cela fonctionnera, il suffit de l'essayer de tous les angles.



14
votes

Utiliser Imagick et ImageMagick Version> 6 (Je ne sais pas si cela fonctionnera sur les anciennes versions):

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


1 commentaires

Merci! Je cherchais ça! Fonctionne très bien.



0
votes

Très bon travail avec (ImageMagick) Pas GD .. Je vois que les tags de cette question sont GD !!

Voici une version GD sur ce lien: PHP GD Utilisez une image pour masquer une autre image, y compris la transparence


0 commentaires