resize.php
<?php
function resizeImg($new_width, $new_height, $get_image, $quality){
ini_set("allow_url_fopen", 1);
list($old_width, $old_height) = getimagesize($get_image);
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($get_image);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
header('Content-Type: image/jpeg');
$img = imagejpeg($image_p, NULL, $quality);
echo base64_encode($img);
}
$new_width = $_GET['w'];
$new_height = $_GET['h'];
$get_image = $_GET['img'];
$get_quality = $_GET['q'];
if($get_quality == NULL){$quality = "80";}
else{$quality = $get_quality;}
?>
<img src="data:image/jpeg;base64,<?php echo resizeImg($new_width, $new_height, $get_image, $quality) ?>" />
上面的代码只有在我调用<img>
标记之外的函数时才有效,但我要求在图像标记内调用它。
我试过没有使用base64_encode()
,但仍然没有运气,任何帮助都表示赞赏。
答案 0 :(得分:0)
有两种方式为您的形象提供服务。一种是设置内容类型标头,转储原始图像数据,然后通过src
标签的img
属性引用此脚本的URL。另一种是将base64编码图像嵌入HTML源代码本身。看来你正试图做后者。如果是这种情况,只需删除对header()
的通话,因为图片类型信息已由src
标记中的img
属性提供。