【问题标题】:PHP resize image, convert to jpg, and display in browserPHP调整图像大小,转换为jpg,并在浏览器中显示
【发布时间】:2013-04-10 03:27:00
【问题描述】:

我有一个表格可以上传文件:

<form method="POST" action="upload-image.php">
    <input type="file" name="file"><br>
    <input type="submit" value="Submit">
</form>

还有一个 PHP 代码来调整上传的文件(图片)的大小,将其转换为 JPG,并在浏览器中显示。

<?php
function image_to_jpg($src_file){
    $file = $_FILES["file"]["name"];
    $ext = end(explode(".",$file));
    list($width_orig,$height_orig) = getimagesize($src_file);
    $width  = 128;
    $height = 128;
    ini_set("memory_limit","32M");
    if($ext == "jpg" || $ext == "jpeg"){
        $image = imagecreatefromjpeg($file);
    }
    if($ext == "gif"){
            $image = imagecreatefromgif($file); 
    }
    if($ext == "png"){
        $image = imagecreatefrompng($file);
    }
    $new_image = imagecreatetruecolor($width,$height);
    imagecopyresampled($new_image,$image,0,0,0,0,$width,$height,$width_orig,height_orig);
    $dest_file = "ok.jpg";
    header("Content-Type: image/jpeg");
    imagejpeg($new_image,$dest_file);
}
$src_file = $_FILES["file"]["tmp_name"];
image_to_jpg($src_file);
?>

它不工作。它显示一个空白图像。我的错误是什么?

注意:代码改编自被接受为答案的帖子:

How do I resize and convert an uploaded image to a PNG using GD

【问题讨论】:

    标签: php forms upload image-resizing image-conversion


    【解决方案1】:

    因为您使用imagejpeg($new_image,$dest_file);,所以您的缩放图像被写入 ok.jpg。不要使用第二个参数直接输出到浏览器。

    header("Content-Type: image/jpeg");
    imagejpeg($new_image);
    imagedestroy($new_image);
    exit; 
    

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 2013-04-01
      • 2011-10-04
      • 2015-12-06
      • 2018-06-19
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多