首页 > 解决方案 > 即使图像存在,Imagecreatefromjpeg 也会返回 false

问题描述

此代码返回 false:

    $image = imagecreatefromjpeg("photos/profiles/original/4cdf149b63d0ca0158f68357d8da371c_y.jpg");
    var_dump($image);
    exit;

但是这段代码:

    $image = getimagesize("photos/profiles/original/4cdf149b63d0ca0158f68357d8da371c_y.jpg");
    var_dump($image);
    exit;

返回这个:

array(7) { [0]=> int(2576) [1]=> int(1932) [2]=> int(2) [3]=> string(26) "width="2576" height="1932"" ["bits"]=> int(8) ["channels"]=> int(3) ["mime"]=> string(10) "image/jpeg" }

我也可以从任何网络浏览器或其他东西等上看到照片。我该如何解决这个问题?

标签: phpphp-gd

解决方案


结合gd.jpeg_ignore_warning并使用@来抑制评论中提到的错误似乎有效,但由于某种莫名其妙的原因将图像旋转了 90 度〜也许图像是在手机上拍摄的?

<?php


    ini_set ('gd.jpeg_ignore_warning', 1);

    $src='c:/temp2/4cdf149b63d0ca0158f68357d8da371c_y.jpg';
    $img=@imagecreatefromjpeg( $src );


    header( 'Content-Type: image/jpeg' );
    imagejpeg( $img );
    imagedestroy( $img );
?>

推荐阅读