Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用base64_编码的php gd库图像大小调整函数_Php_Base64_Gd - Fatal编程技术网

使用base64_编码的php gd库图像大小调整函数

使用base64_编码的php gd库图像大小调整函数,php,base64,gd,Php,Base64,Gd,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);

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) ?>" />

" />
上述代码仅在调用
标记外部的函数时有效,但我要求在图像标记内部调用它


我尝试过不使用
base64\u encode()
但是仍然没有运气,任何帮助都是非常感谢的。

有两种方法可以为您的图像提供服务。一种是设置内容类型标题,转储原始图像数据,然后通过
img
标记的
src
属性引用此脚本的URL。另一种是将base64编码的图像嵌入HTML源代码本身。它看起来像如果是这种情况,只需删除对
header()的调用
,因为图像类型信息已经由
img
标记中的
src
属性提供。

您的函数以echo结束,但不返回任何内容,然后您的函数调用再次使用echo。让您的函数
返回值,而不是回显它。@AlexHowansky尝试了这个方法,但没有成功。我想说的是结论是设置
标题('Content-Type:image/jpeg')
会改变页面层次结构,因此页面无法识别
标记。这对您有意义吗?可能重复我理解,是的,我正在使用后一种方法,但一旦我删除
标题()
,页面在显示空图像框(如html的图像未加载框)之前转储原始图像数据。