【问题标题】:PHP GD Lib - imagecreatefromjpeg fails on jpg image with mime type image/pngPHP GD Lib - imagecreatefromjpeg 在具有 mime 类型 image/png 的 jpg 图像上失败
【发布时间】:2014-10-01 21:55:03
【问题描述】:

当图像上传到我的网站时,我使用 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() 进行裁剪)时,我该怎么做才能阻止它失败?

【问题讨论】:

    标签: php png jpeg mime-types gdlib


    【解决方案1】:

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

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


    $img 包含您的源文件路径...。如果您想从 png 图像制作 jpeg 副本,imagecreatefrompng(...) 然后用 imgejpeg(...) 输出它就是这样做的方法...

    【讨论】:

    • 该代码只是为了说明问题。还是没有解决问题。
    • 或许能更准确地了解一下这个问题!?
    猜你喜欢
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    相关资源
    最近更新 更多