Maison >développement back-end >tutoriel php >Comment fusionner plusieurs images en PHP

Comment fusionner plusieurs images en PHP

小云云
小云云original
2018-02-27 10:32:372699parcourir

Cet article partage principalement avec vous la méthode de fusion de plusieurs images en PHP. La fonction PHP imagecopymerge peut prendre en charge la définition de la transparence de la superposition lorsque deux images sont superposées. La fonction imagecopy ne prend pas en charge la transparence de la superposition. Code source interne PHP, la transparence de imagecopymerge est Lorsque le paramètre est 100, la fonction imagecopy est appelée directement.
Cependant, la fonction imagecopy peut conserver les informations transparentes originales de l'image png lors de la copie, mais imagecopymerge ne prend pas en charge la copie transparente de l'image elle-même
C'est plutôt verbeux.
Dans Ajouter un filigrane LOGO à l'image.
De manière générale, un logo se compose d'une icône et d'une URL, comme une image png transparente, logo.png
Maintenant, si vous souhaitez mettre ce logo sur une image,
utilisez la fonction imagecopymerge pour. y parvenir. Une icône en filigrane léger avec une transparence de 30%, mais le png du logo lui-même deviendra opaque car IE6 ne prend pas en charge la transparence png. Si vous utilisez la fonction imagecopy, vous pouvez conserver les informations transparentes du logo lui-même, mais il ne peut pas atteindre 30 % de superposition de filigrane léger,
Méthode d'implémentation officielle PHP : utilisez la fonction imagecopymerge_alpha pour implémenter directement les fonctions de ces deux fonctions, tout en conservant la transparence du png lui-même, tout en obtenant une superposition de transparence personnalisée, mais l'interne l'utilisation de cette fonction est $opacity = 100 - $opacity ; pour obtenir la transparence, cela semble être tout le contraire

$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
imagecopy($dst, $src, 100, 100, 0, 0, 100, 100);//完成合并
  function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
        $opacity=$pct;
        // getting the watermark width
        $w = imagesx($src_im);
        // getting the watermark height
        $h = imagesy($src_im);
        
        // creating a cut resource
        $cut = imagecreatetruecolor($src_w, $src_h);
        // copying that section of the background to the cut
        imagecopy($cut, $dst_im, 0, 0, $dst_x, $dst_y, $src_w, $src_h);
        // inverting the opacity
        $opacity = 100 - $opacity;
        
        // placing the watermark now
        imagecopy($cut, $src_im, 0, 0, $src_x, $src_y, $src_w, $src_h);
        imagecopymerge($dst_im, $cut, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $opacity);
    }

Recommandations associées :

php réalise la fusion d'images dans WeChat - Images Jiugongge

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn