我有一个加载链接的简单页面,链接会改变图像的外观。我想要一个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>
问题如何显示图像?我是否必须将图像复制到临时目录以将其显示为实际图像?
答案 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;
}
}