如何在新网页中下载图片?

时间:2014-08-16 20:56:38

标签: php web download imagedownload

我有一个png图像将被下载当用户点击下载图标时,现在该图像正在其打开的同一网页上下载。我想在新的网页上下载图片。这是下面的代码,我找不到在哪里更改代码,使其在新的网页上下载。我认为应该修改的代码是......

header("Content-disposition: attachment; filename=\"$iconName".$sizeName.".png\"");

如果要查看完整代码,请按以下步骤操作。请帮我解决这个问题....

<?php
    ob_start();

    require "../config.php";

    error_reporting(0);

    $icon = $_GET['icon'];
    $iconName = str_replace(".png", "", $_GET['in']);

    $dimensions = $_GET['size'];
    $padding = $_GET['padding'];

    $bgShape = $_GET['bgShape']; if(!$bgShape) $bgShape = 'TransparentCNT.png';
    $bgColorR = $_GET['bgColorR'];
    $bgColorG = $_GET['bgColorG'];
    $bgColorB = $_GET['bgColorB'];

    $iconColorR = $_GET['iconColorR'];
    $iconColorG = $_GET['iconColorG'];
    $iconColorB = $_GET['iconColorB'];

    /////////////////////////////////////////////////////////// 

    $final_image = imagecreatetruecolor($dimensions, $dimensions);
    imagealphablending($final_image, false);
    $transparency = imagecolorallocatealpha($final_image,  0, 0, 0, 127);
    imagefilledrectangle($final_image, 0, 0, $dimensions, $dimensions, $transparency);
    imagesavealpha($final_image, true);
    imagealphablending($final_image, true);

    if($bgShape != '') {
        list($originalWidth, $originalHeight) = getimagesize('../images/' . $bgShape);

        $background = imagecreatefrompng('../images/' . $bgShape);

        imagefilter($background, IMG_FILTER_BRIGHTNESS, -255);
        imagefilter($background, IMG_FILTER_COLORIZE, $bgColorR, $bgColorG, $bgColorB);

        $backgroundImage = imagecreatetruecolor( $dimensions, $dimensions );
        imagealphablending($backgroundImage , false);
        imagesavealpha($backgroundImage , true);

        imagecopyresampled($backgroundImage,
            $background,
            0, 0,
            0, 0,
            $dimensions, $dimensions,
            $originalWidth, $originalHeight
        );

        imagecopy($final_image, $backgroundImage, 0, 0, 0, 0, $dimensions, $dimensions);
    }

    $icon = imagecreatefrompng("../" . $icon);

    imagefilter($icon, IMG_FILTER_BRIGHTNESS, -255);
    imagefilter($icon, IMG_FILTER_COLORIZE, $iconColorR, $iconColorG, $iconColorB);

    $iconImage = imagecreatetruecolor( $dimensions, $dimensions );
    imagealphablending($iconImage, false);
    $transparency = imagecolorallocatealpha($iconImage,  0, 0, 0, 127);
    imagefilledrectangle($iconImage, 0, 0, $dimensions, $dimensions, $transparency);
    imagesavealpha($iconImage, true);
    imagealphablending($iconImage, true);

    imagecopyresampled($iconImage,
        $icon,
        0, 0,
        0, 0,
        $dimensions - ($padding * 2), $dimensions - ($padding * 2),
        $originalWidth, $originalHeight
    );

    imagecopy($final_image, $iconImage, $padding, $padding, 0, 0, $dimensions, $dimensions);

    ///

    if($demoMode) {
        $icon2 = imagecreatefrompng("../images/Mask.png");

        imagesavealpha($icon2, true);
        imagealphablending($icon2, true);

        imagecopy($final_image, $icon2, 0, 0, 0, 0, $dimensions, $dimensions);
    }

    ///

    imagealphablending($final_image,`8true);
    imagesavealpha($final_image, true);

    imagepng($final_image, NULL, 0, PNG_NO_FILTER);

    header("Content-Type: image/png");
    header("Content-Transfer-Encoding: Binary");

    $sizeName = "";
    if($includeSizeInDownloadNames) $sizeName = "-" . $dimensions;

    header("Content-disposition: attachment; filename=\"$iconName".$sizeName.".png\""); 

?>

1 个答案:

答案 0 :(得分:1)