我在 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'
这就是 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
为了测试代码的 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";
}
这是我得到的结果:
我注意到的一件事是 GD 中的 libPNG 版本是“1.6.6”,而我计算机上的版本是“1.6.12”。是否有可能导致 PNG 功能出现问题?
最佳答案
这是对那些来到这里有相同症状(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/