Ank*_*kar 5 php gd mamp image-processing libpng
我在OS X Yosemite上运行MAMP服务器版本3.0.5.在执行期间我的php文件似乎缺少PNG支持即使在我使用MAMP 2.1之前,它在png相关函数上也有致命错误.
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'
Run Code Online (Sandbox Code Playgroud)

这就是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
Run Code Online (Sandbox Code Playgroud)

要测试代码中存在的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";
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:

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

Jps*_*psy 12
对于那些来到这里具有相同症状的人来说,这是一个答案(Yosemite下的PHP,但GD Lib有效但缺少PNG支持),但是他们正在使用OS X附带的Apache和PHP(而不是MAMP).
在这种情况下,问题的原因是Yosemite的PHP没有编译的PNG和FreeType支持.
这种情况下的解决方案如下所述:https://stackoverflow.com/a/26505558/430742