php - PHP GD 库中不支持 PNG,但支持 GIF 和 JPEG。我怎样才能解决这个问题?

标签 php image-processing gd mamp libpng

我在 OS X Yosemite 上运行 MAMP 服务器版本 3.0.5。在执行过程中,我的 php 文件似乎缺少 PNG 支持 甚至在我使用 MAMP 2.1 之前,它在 png 相关函数上就存在 fatal error 。

不过 Jpeg 函数工作正常。

这是我的 phpinfo 的样子:

Build Date  Apr 10 2014 17:21:18
Configure Command   './configure' '--with-mysql=/Applications/MAMP/Library' '--with-apxs2=/Applications/MAMP/Library/bin/apxs' '--with-gd' '--with-jpeg-dir=/Applications/MAMP/Library' '--with-png-dir=/Applications/MAMP/Library' '--with-zlib' '--with-zlib-dir=/Applications/MAMP/Library' '--with-freetype-dir=/Applications/MAMP/Library' '--prefix=/Applications/MAMP/bin/php/php5.5.10' '--exec-prefix=/Applications/MAMP/bin/php/php5.5.10' '--sysconfdir=/Applications/MAMP/bin/php/php5.5.10/conf' '--with-config-file-path=/Applications/MAMP/bin/php/php5.5.10/conf' '--enable-ftp' '--enable-gd-native-ttf' '--with-bz2=/usr' '--with-ldap' '--with-mysqli=/Applications/MAMP/Library/bin/mysql_config' '--with-t1lib=/Applications/MAMP/Library' '--enable-mbstring=all' '--with-curl=/Applications/MAMP/Library' '--enable-sockets' '--enable-bcmath' '--with-imap=shared,/Applications/MAMP/Library/lib/imap-2007f' '--enable-soap' '--with-kerberos' '--enable-calendar' '--with-pgsql=shared,/Applications/MAMP/Library/pg' '--enable-exif' '--with-libxml-dir=/Applications/MAMP/Library' '--with-gettext=shared,/Applications/MAMP/Library' '--with-xsl=/Applications/MAMP/Library' '--with-pdo-mysql=shared,/Applications/MAMP/Library' '--with-pdo-pgsql=shared,/Applications/MAMP/Library/pg' '--with-mcrypt=shared,/Applications/MAMP/Library' '--with-openssl' '--enable-zip' '--with-iconv=/Applications/MAMP/Library' '--enable-opcache' '--enable-intl' '--with-tidy=shared' '--with-icu-dir=/Applications/MAMP/Library'

phpinfo

这就是 GD 部分包含的内容:

GD Support  enabled
GD Version  bundled (2.1.0 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.4.12
T1Lib Support   enabled
GIF Read Support    enabled
GIF Create Support  enabled
JPEG Support    enabled
libJPEG Version 8
PNG Support enabled
libPNG Version  1.6.6
WBMP Support    enabled
XBM Support enabled

gd info

为了测试代码的 png 执行和 gd 库,我运行以下代码:

if (extension_loaded('gd')) {
  echo "\nGD support is -Loaded-";
}else{
  echo "\nGD support is == NOT == loaded ";
}
if(function_exists('gd_info')){
  echo "\nGD function support is -Available- ";
}else{
  echo "\nGD function support is == NOT == available ";
}

if(function_exists('imagepng')){
  echo "\nimagepng() -Exists-";
}else{
  echo "\nimagepng() ==== DOES NOT ==== Exist";
}


if(function_exists('imagejpeg')){
  echo "\nimagejpeg() -Exists-";
}else{
  echo "\nImage Function ==== DOES NOT ==== Exists";
}

这是我得到的结果:

result of the code execution

我注意到的一件事是 GD 中的 libPNG 版本是“1.6.6”,而我计算机上的版本是“1.6.12”。是否有可能导致 PNG 功能出现问题?

trying to install libpng

最佳答案

这是对那些来到这里有相同症状(Yosemite 下的 PHP,GD Lib 处于事件状态但缺少 PNG 支持)但使用 OS X 附带的 Apache 和 PHP(而不是 MAMP)的人的答案。

在这种情况下,问题的原因是 Yosemite 的 PHP 没有编译 PNG 和 FreeType 支持。

此处描述了这种情况下的解决方案:https://stackoverflow.com/a/26505558/430742

关于php - PHP GD 库中不支持 PNG,但支持 GIF 和 JPEG。我怎样才能解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25124761/

相关文章:

包含的 PHP + MySQL 登录

php - 使用 PHP 从 HTML 获取特定数据

php - Xpath 选择文本

c# - 检测图像中的颜色 Blob

matlab图像处理错误

php gd 像素化太锐利

php - 所有子数组元素无重复的组合

c++ - openCV 中的 SVM 抛出 "cv::Exception at memory location"

linux - 如何大量使用转换命令,一个干净的正则表达式扫描?

php - imagecreatefromjpeg 和类似的函数在 PHP 中不起作用