phpimage-processinggdimagefilter

Fatal error: Call to undefined function imagefilter()


What is causing this error?

Fatal error: Call to undefined function imagefilter() in /var/www/polaroid.php on line 5
  1 <?PHP
  2   $img_addr = $_GET['image_address'];
  3   $img = imagecreatefromjpeg($img_addr);
  4
      /* everything works as expected without this line */
  5   imagefilter($img, IMG_FILTER_GRAYSCALE);  
  6
  7   if ($img)
  8   {
        /* I moved the header function here so I can see errors in the browser. 
           If I leave it at the top of the file, the browser expects an image 
           and doesn't print the error messages. */
  9     header('Content-type: image/jpeg');
 10     imagejpeg($img);
 11   }
 12 ?>
 13

This is the URL I use:

http://localhost/polaroid.php?image_address=http://mattnelsoninfo.files.wordpress.com/2008/04/ceiling_cat1.jpg

NOTE: gd is listed in the output from phpinfo().

EDIT: I'm using PHP Version 5.2.6-2ubuntu4.1

Another EDIT:

phpinfo() yields this in the gd section

gd
GD Support  enabled
GD Version  2.0 or higher
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.3.7
T1Lib Support   enabled
GIF Read Support    enabled
GIF Create Support  enabled
JPG Support     enabled
PNG Support     enabled
WBMP Support    enabled 

Thanks!


Solution

  • What version of PHP are you using? It looks like imagefilter is a PHP5 function ... https://www.php.net/manual/en/function.imagefilter.php

    EDIT: Your code works on my version of PHP. For reference, here's my phpinfo:

    gd
    GD Support  enabled
    **GD Version    bundled (2.0.34 compatible)**
    FreeType Support    enabled
    FreeType Linkage    with freetype
    FreeType Version    2.1.9
    T1Lib Support   enabled
    GIF Read Support    enabled
    GIF Create Support  enabled
    JPG Support     enabled
    PNG Support     enabled
    WBMP Support    enabled
    XBM Support     enabled
    

    You might want to make sure that the GD Version is bundled. I've seen installations that say GD Support is enabled but not bundled. Not sure if that makes a difference though.