imagecreatefromjpeg在mime类型为image/png的jpg图像上失败


PHP GD Lib - imagecreatefromjpeg fails on jpg image with mime type image/png

当图片上传到我的网站时,我使用gd lib:

将它们全部转换为jpg格式。
$image = imagecreatefrompng($img);
$outputFile = str_replace('png', 'jpg', $img);
unlink($img);
imagejpeg($image, $outputFile, $quality);
imagedestroy($image);

这个工作非常好,直到我需要复制一个图像进行裁剪。在imagecreatefromjpeg()

中失败

查看getimagesize($outputFile)的图像细节,我可以看到,即使我已经成功地将png或gif转换为jpg,并且它具有jpg文件扩展名,mime类型仍然是image/png或image/gif。

例如:

Array
(
    [0] => 250
    [1] => 188
    [2] => 3
    [3] => width="250" height="188"
    [bits] => 8
    [mime] => image/png
)

当我转换为jpg时,我如何更改mime类型?或者当我需要对图像做一些事情时,我能做些什么来阻止它失败,比如复制它或使用imagecreatefromjpeg()调整它的大小来裁剪它?

只能在jpg图片上使用imagecreatefromjpeg()
在上面的示例中,要检查创建的输出文件,必须将代码更改为

   <?php... getimagesize($outputFile); .... ?>


$img包含源文件路径... .如果你想从png图像中复制一个jpeg格式,imagecreatefromting(…),然后用imgejpeg(…)输出它将是一种方法…