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;
}
Exemplo n.º 2
0
        $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);
}