No PNG support in PHP GD Library but has GIF and JPEG Support. How can I fix this?

13,287

Solution 1

This is an answer for those who come here with the same symptom (PHP under Yosemite with GD Lib active but missing PNG support) but who are using the Apache and PHP that comes with OS X (instead of MAMP).

In this case the reason for the problem is that Yosemite's PHP comes without PNG and FreeType support compiled in.

The solution in this situation is described here: https://stackoverflow.com/a/26505558/430742

Solution 2

Based on the screenshots you posted, it's not just PNG that is having the issue. The phpinfo() browser output you included shows FreeType, T1Lib, XBM and PNG as all enabled and available while the command line screenshot of the result from your PHP script shows that none of those are available.

Hence, it is highly likely the issue you are having stems from using two different installs of PHP in both scenarios: one via MAMP on browsers and one perhaps from a local install on command line. Do run your script via MAMP/browser to make sure you get the same PNG error.

Check which PHP binary is being used by running the command:

which php

If it lists a PHP path in /etc or anything other than the MAMP path, then you need to explicitly use the MAMP PHP path when running commands. Alternatively, you can set an alias in your .bash_profile file by adding a line along the lines of (replace the php5.X.X with the correct version you have):

alias php=/Applications/MAMP/bin/php/php5.X.X/bin/php

You can also try remove the old PHP bin file and create a symlink to the MAMP PHP bin:

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

Hope that helps.

Share:
13,287
Ankush Dharkar
Author by

Ankush Dharkar

Updated on June 19, 2022

Comments

  • Ankush Dharkar
    Ankush Dharkar almost 2 years

    I am running MAMP server Version 3.0.5 on OS X Yosemite. It seems to be missing PNG Support on my php files during execution Even before when I had MAMP 2.1, it had fatal errors on png related functions.

    The Jpeg functions work fine though.

    This is what my phpinfo looks like :

    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

    And this is what the GD section contains :

    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

    To test the png execution and gd library existing for the code, I run the following code :

    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";
    }
    

    And this is the result I get :

    result of the code execution

    One thing I do notice is that the libPNG Version in GD is '1.6.6', whereas the one on my computer is '1.6.12'. Is it a possibility that it causes a problem with the PNG functions?

    trying to install libpng

  • Jpsy
    Jpsy over 9 years
    I guess the second PHP installation that you are referring to is the native one that is included with Yosemite. It has the problem that PNG support is not compiled ins (see stackoverflow.com/questions/26443242/…).