GD,加载 libJPEG,imagejpeg 返回 false
Posted
技术标签:
【中文标题】GD,加载 libJPEG,imagejpeg 返回 false【英文标题】:GD, libJPEG loaded, imagejpeg returns false 【发布时间】:2012-01-21 13:27:01 【问题描述】:我对 php、GD 和 libJPEG 有一个奇怪的行为
这是我用于 GD 的 phpinfo():
GD Support enabled
GD Version bundled (2.0.34 compatible)
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.2.44
WBMP Support enabled
XBM Support enabled
这就是我正在做的:
$img = imagecreatefromjpeg("/home/logo.jpg");
var_dump($img)
结果为假。图像存在,并且 chmodded 777。
我正在运行 php 5.3.9,还在 JPEG png 转换和其他 JPEG 操作上进行测试失败。
有什么想法吗?谢谢!
找到解决方案:从 ./configure 中删除 --disable-rpath。现在我要拿起枪朝我的头部开枪。
【问题讨论】:
如果大多数测试用例都失败了,那显然是你的 libJPG 库出了问题。 还有其他人在使用 libJPEG 8 时遇到问题吗?实际上我在另一台使用 libJPEG 6 的服务器上没有问题 【参考方案1】:运行
$data = getimagesize("/home/logo.jpg");
var_dump($data);
并确保图像的 MIME TYPE 是 image/jpeg
另一个原因可能是文件路径不正确(可能需要去掉开头的“/”,只留下imagecreatefromjpeg("home/logo.jpg")
[如果主目录与您的 php 文件处于同一级别 - 比您应该]
【讨论】:
返回:array(7) [0]=> int(200) [1]=> int(200) [2]=> int(2) [3]=> string(24 ) " " ["bits"]=> int(8) ["channels"]=> int(3) ["mime"]=> string(10) "image/jpeg " 这是正确的 @spacenick 你能上传图片以便我们更深入地研究问题吗?另一个不错的选择是使用 Imagick 库,这是一个面向对象的图像处理库,其结果比 GD 好得多 是的,实际上它似乎与图像无关,因为它实际上不适用于任何图像(我制作了一个小的上传/裁剪头像脚本,并使用我的 logo.jpg 图像进行了测试) .它设法获得尺寸等但没有打开它仍然很恶心:/ 也许imagecreatefromstring(file_get_contents("home/logo.jpg"));
会起作用。检查您的系统是否启用了fopen
功能,否则imagecreatefromjpeg
将不起作用以上是关于GD,加载 libJPEG,imagejpeg 返回 false的主要内容,如果未能解决你的问题,请参考以下文章
调用未定义函数 Intervention\Image\Gd\imagejpeg()"