Using a transparent PNG as a clip mask

前端 未结 3 1467
难免孤独
难免孤独 2020-12-16 03:23

Is it possible to take this image:

And apply this mask:

And turn it into this:

Using either GD or Imagick? I know it\'s

相关标签:
3条回答
  • 2020-12-16 03:34

    I think you are looking for imagealphablending. I use it for watermarks, and I believe it will do the effect you are looking for.

    0 讨论(0)
  • 2020-12-16 03:36

    Great work with (ImageMagick) NOT GD .. I see the tags of this question is GD!!

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

    0 讨论(0)
  • 2020-12-16 03:49

    Using Imagick and ImageMagick version > 6 (I don't know if it will work on older 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;
    
    0 讨论(0)
提交回复
热议问题