Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP GD库中不支持PNG,但支持GIF和JPEG。我怎样才能解决这个问题?_Php_Image Processing_Gd_Mamp_Libpng - Fatal编程技术网

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

PHP GD库中不支持PNG,但支持GIF和JPEG。我怎样才能解决这个问题?,php,image-processing,gd,mamp,libpng,Php,Image Processing,Gd,Mamp,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=/Appl

我在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'

这就是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函数出现问题


根据您发布的屏幕截图,出现问题的不仅仅是PNG。您包含的phpinfo()浏览器输出显示FreeType、T1Lib、XBM和PNG都已启用并可用,而PHP脚本结果的命令行屏幕截图显示这些都不可用

因此,您遇到的问题很可能源于在两种情况下使用两种不同的PHP安装:一种是通过浏览器上的MAMP安装,另一种可能是通过命令行上的本地安装。请务必通过MAMP/浏览器运行脚本,以确保获得相同的PNG错误

通过运行以下命令检查正在使用的PHP二进制文件:

which php
如果它在/etc或MAMP路径以外的任何地方列出了PHP路径,那么在运行命令时需要显式使用MAMP PHP路径。或者,您可以在.bash_概要文件中设置别名,方法是沿以下行添加一行(用您拥有的正确版本替换php5.X.X):

您还可以尝试删除旧的PHP bin文件并创建指向MAMP PHP bin的符号链接:

sudo ln -s /Applications/MAMP/bin/php/php5.X.X/bin/php OLDPATH

希望能有所帮助。

这是一个答案,适用于那些带着相同症状(Yosemite下的PHP,GD Lib处于活动状态,但缺少PNG支持)来到这里的人,但他们使用的是OS X附带的Apache和PHP(而不是MAMP)

在本例中,问题的原因是Yosemite的PHP没有编译PNG和FreeType支持


这里描述了这种情况下的解决方案:

虽然这似乎是一个有效的问题,但它与编程无关,因此我建议关闭并迁移到ServerFault。Libpng-1.6.12应该与1.6.6兼容,因此可能会有其他一些关于链接失败的解释。Glenn也是这样认为的。感谢您的关注。我想您提到的第二个PHP安装是Yosemite附带的本机安装。它有一个问题,即PNG支持不是编译的(请参阅)。
sudo ln -s /Applications/MAMP/bin/php/php5.X.X/bin/php OLDPATH