imagejpeg后图像在div内无法正确显示

时间:2013-05-23 10:31:26

标签: php ajax image jpeg

我有一个加载链接的简单页面,链接会改变图像的外观。我想要一个ajax调用来处理图像(像素化它或其他东西),然后在div中更新结果,但它没有正确地进行二次填充,只是一个例如���X!t��⤹9�Ej_5��-

我已尝试在包含要填充的div的页面顶部使用header('Content-Type: image/jpg');,但会导致“此图片因错误而无法显示”

这是php:

$im = '/path/to/image.jpg';
if($_GET[filter]=="pixelate"){
imagefilter($im, IMG_FILTER_PIXELATE, 3, true);
imagejpeg($im);
}

AJAX

function addFilter(filter,color)
{
$.ajax({

 type: "GET",
 url: 'filters.php',
 data: {filter: filter, color: color},
 success: function(data) {
       // data is ur summary
      $('#result').html(data);
 }

});

}

和HTML

<div style="width:600px; height:400px;" id="result"></div>
<a href="#" onclick="addFilter('pixelate','')">pixelate</a>

问题如何显示图像?我是否必须将图像复制到临时目录以将其显示为实际图像?

1 个答案:

答案 0 :(得分:0)

变化:

$im = '/path/to/image.jpg';
if($_GET[filter]=="pixelate"){
    imagefilter($im, IMG_FILTER_PIXELATE, 3, true);
    imagejpeg($im);
}

要:

if($_GET[filter]=="pixelate"){
    $im = @imagecreatefromjpeg('/path/to/image.jpg');
    if ($im) {
        imagefilter($im, IMG_FILTER_PIXELATE, 3, true);
        header('Content-Type: image/jpg');
        imagejpeg($im);
        imagedestroy($im);
        exit;
    } else {
       echo 'Unable to create image from jpeg.';
       exit;
    }
}