Using a transparent PNG as a clip mask

前端 未结 3 1470
难免孤独
难免孤独 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: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;
    

提交回复
热议问题