function send_file($file_name) { $file_dir = get_download_filedir($file_name); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . $file_name); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file_dir)); readfile($file_dir); exit; }
$watermarkHeight = $watermark->getImageHeight(); // Get original image sizes $imageWidth = $original->getImageWidth(); $imageHeight = $original->getImageHeight(); // Merge watermark in tiling mode for ($x = $initialX;; $x += $watermarkWidth + (int) $originY) { for ($y = $initialY;; $y += $watermarkHeight + (int) $originX) { $original->compositeImage($watermark, Imagick::COMPOSITE_DEFAULT, $x, $y); if ($y > $imageHeight) { break; } } if ($x > $imageWidth) { break; } } } else { // Merge watermark in normal mode $original->compositeImage($watermark, Imagick::COMPOSITE_DEFAULT, $originX, $originY); } // Make flat image $original->flattenImages(); // Make filename and filedir $file_name = make_filename($originalImagePath, 'png'); $file_dir = get_download_filedir($file_name); // Save image $original->setImageFormat('png'); $original->writeImage($file_dir); // Send image name to user send_filename($file_name); }