function generate_watermarked_image($originalFileContents, $originalWidth, $originalHeight, $paddingFromBottomRight = 0, $watermarkFileLocation = 'logo.png') { $watermarkImage = imagecreatefrompng($watermarkFileLocation); $watermarkWidth = imagesx($watermarkImage); $watermarkHeight = imagesy($watermarkImage); $originalImage = imagecreatefromstring($originalFileContents); $destX = $originalWidth - $watermarkWidth - $paddingFromBottomRight; $destY = $originalHeight - $watermarkHeight - $paddingFromBottomRight; // creating a cut resource $cut = imagecreatetruecolor($watermarkWidth, $watermarkHeight); // copying that section of the background to the cut imagecopy($cut, $originalImage, 0, 0, $destX, $destY, $watermarkWidth, $watermarkHeight); // placing the watermark now imagecopy($cut, $watermarkImage, 0, 0, 0, 0, $watermarkWidth, $watermarkHeight); // merging both of the images imagecopymerge($originalImage, $cut, $destX, $destY, 0, 0, $watermarkWidth, $watermarkHeight, 100); return $originalImage; }