composite_sunflower_hard.jpg
Cut a round hole in an image and composite it over another image so the second image shows through

<?php

// Get the image size to creat the mask
// This can be done within Imagemagick but as we are using php this is simple.
$size getimagesize('sunflower.jpg');

// Create a mask with a round hole 
$cmd " -size {$size[0]}x{$size[1]} xc:none -fill black ".
" -draw \"circle 120,220 120,140\" "
exec("convert $cmd mask.png"); 

// Cut out the hole in the top image 
$cmd " -compose Dst_Out mask.png -gravity south sunflower.jpg -matte "
exec("composite $cmd result_dst_out1.png"); 

// Composite the top image over the bottom image 
$cmd " bathhat.jpg result_dst_out1.png -geometry +60-20 -composite "
exec("convert $cmd output_temp.jpg"); 

// Crop excess from the image where the bottom image is larger than the top
$cmd " output_temp.jpg -crop 400x280+60+0 ";
exec("convert $cmd composite_sunflower_hard.jpg "); 

// Delete tempory images
unlink("mask.png"); 
unlink("result_dst_out1.png"); 
unlink("output_temp.jpg"); 

?> 

Back to the other examples index