   #PHP Manual Function Reference ob_iconv_handler exif_imagetype

   PHP Manual
   Prev  Next
   ______________________________________________________________________

XLI. Image functions

Introduction

   PHP is not limited to creating just HTML output. It can also be used
   to create and manipulate image files in a variety of different image
   formats, including gif, png, jpg, wbmp, and xpm. Even more convenient,
   PHP can output image streams directly to a browser. You will need to
   compile PHP with the GD library of image functions for this to work.
   GD and PHP may also require other libraries, depending on which image
   formats you want to work with.

   You can use the image functions in PHP to get the size of JPEG, GIF,
   PNG, SWF, TIFF and JPEG2000 images.

     Note: Read requirements section about how to expand image
     capabilities to read, write and modify images and to read meta data
     of pictures taken by digital cameras.

Requirements

   If you have the GD library (available at http://www.boutell.com/gd/)
   you will also be able to create and manipulate images.

   The format of images you are able to manipulate depend on the version
   of GD you install, and any other libraries GD might need to access
   those image formats. Versions of GD older than gd-1.6 support GIF
   format images, and do not support PNG, where versions greater than
   gd-1.6 support PNG, not GIF.

     Note: Since PHP 4.3 there is a bundled version of the GD lib. This
     bundled version has some additional features like alpha blending,
     and should be used in preference to the external library since it's
     codebase is better maintained and more stable.

   You may wish to enhance GD to handle more image formats.

   Table 1. Supported image formats
   Image format Library to download Notes
   gif   Only supported in GD versions older than gd-1.6. Read-only GIF
   support is available with PHP 4.3.0 and the bundled GD-library.
   jpeg-6b ftp://ftp.uu.net/graphics/jpeg/
   png http://www.libpng.org/pub/png/libpng.html Only supported in GD
   versions greater than gd-1.6.
   xpm ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html It's likely you
   have this library already available, if your system has an installed
   X-Environment.

   You may wish to enhance GD to deal with different fonts. The following
   font libraries are supported:

   Table 2. Supported font libraries
   Font library Download Notes
   FreeType 1.x http://www.freetype.org/
   FreeType 2 http://www.freetype.org/
   T1lib ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) Support for Type
   1 fonts.

   If you have PHP compiled with --enable-exif you are able to work with
   information stored in headers of JPEG and TIFF images. This way you
   can read meta data generated by digital cameras as mentioned above.
   These functions does not require the GD library.

     Note: PHP does not require any additional library for the exif
     module.

Installation

   To enable GD-support configure PHP --with-gd[=DIR], where DIR is the
   GD base install directory. To use the recommended bundled version of
   the GD library (which was first bundled in PHP 4.3.0), use the
   configure option --with-gd. In Windows, you'll include the GD2 DLL
   php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was
   removed in PHP 4.3.2. Also note that the preferred truecolor image
   functions, such as imagecreatetruecolor(), require GD2.

   To disable GD support in PHP 3 add --without-gd to your configure
   line.

   Enhance the capabilities of GD to handle more image formats by
   specifying the --with-XXXX configure switch to your PHP configure
   line.

   Table 3. Supported image formats
   Image Format Configure Switch
   jpeg-6b To enable support for jpeg-6b add --with-jpeg-dir=DIR.
   png To enable support for png add --with-png-dir=DIR. Note, libpng
   requires the zlib library, therefore add --with-zlib-dir[=DIR] to your
   configure line.
   xpm To enable support for xpm add --with-xpm-dir=DIR. If configure is
   not able to find the required libraries, you may add the path to your
   X11 libraries.

   Enhance the capabilities of GD to deal with different fonts by
   specifying the --with-XXXX configure switch to your PHP configure
   line.

   Table 4. Supported font libraries
   Font library Configure Switch
   FreeType 1.x To enable support for FreeType 1.x add --with-ttf[=DIR].
   FreeType 2 To enable support for FreeType 2 add
   --with-freetype-dir=DIR.
   T1lib To enable support for T1lib (Type 1 fonts) add
   --with-t1lib[=DIR].
   Native TrueType string function To enable support for native TrueType
   string function add --enable-gd-native-ttf.

Runtime Configuration

   The behaviour of these functions is affected by settings in php.ini.

   Exif supports automatically conversion for Unicode and JIS character
   encodings of user comments when module mbstring is available. This is
   done by first decoding the comment using the specified characterset.
   The result is then encoded with another characterset which should
   match your HTTP output.

   Table 5. Exif configuration options
   Name                         Default       Changeable
   exif.encode_unicode          "ISO-8859-15" PHP_INI_ALL
   exif.decode_unicode_motorola "UCS-2BE"     PHP_INI_ALL
   exif.decode_unicode_intel    "UCS-2LE"     PHP_INI_ALL
   exif.encode_jis              ""            PHP_INI_ALL
   exif.decode_jis_motorola     "JIS"         PHP_INI_ALL
   exif.decode_jis_intel        "JIS"         PHP_INI_ALL
   For further details and definition of the PHP_INI_* constants see
   ini_set().

   Here's a short explanation of the configuration directives.

   exif.encode_unicode string
          exif.encode_unicode defines the characterset UNICODE user
          comments are handled. This defaults to ISO-8859-15 which should
          work for most non Asian countries. The setting can be empty or
          must be an encoding supported by mbstring. If it is empty the
          current internal encoding of mbstring is used.

   exif.decode_unicode_motorola string
          exif.decode_unicode_motorola defines the image internal
          characterset for Unicode encoded user comments if image is in
          motorola byte order (big-endian). This setting cannot be empty
          but you can specify a list of encodings supported by mbstring.
          The default is UCS-2BE.

   exif.decode_unicode_intel string
          exif.decode_unicode_intel defines the image internal
          characterset for Unicode encoded user comments if image is in
          intel byte order (little-endian). This setting cannot be empty
          but you can specify a list of encodings supported by mbstring.
          The default is UCS-2LE.

   exif.encode_jis string
          exif.encode_jis defines the characterset JIS user comments are
          handled. This defaults to an empty value which forces the
          functions to use the current internal encoding of mbstring.

   exif.decode_jis_motorola string
          exif.decode_jis_motorola defines the image internal
          characterset for JIS encoded user comments if image is in
          motorola byte order (big-endian). This setting cannot be empty
          but you can specify a list of encodings supported by mbstring.
          The default is JIS.

   exif.decode_jis_intel string
          exif.decode_jis_intel defines the image internal characterset
          for JIS encoded user comments if image is in intel byte order
          (little-endian). This setting cannot be empty but you can
          specify a list of encodings supported by mbstring. The default
          is JIS.

Resource Types

   This extension has no resource types defined.

Predefined Constants

   The constants below are defined by this extension, and will only be
   available when the extension has either been compiled into PHP or
   dynamically loaded at runtime.

   IMG_GIF (integer)

   IMG_JPG (integer)

   IMG_JPEG (integer)

   IMG_PNG (integer)

   IMG_WBMP (integer)

   IMG_XPM (integer)

   IMG_COLOR_TILED (integer)

   IMG_COLOR_STYLED (integer)

   IMG_COLOR_BRUSHED (integer)

   IMG_COLOR_STYLEDBRUSHED (integer)

   IMG_COLOR_TRANSPARENT (integer)

   IMG_ARC_ROUNDED (integer)

   IMG_ARC_PIE (integer)

   IMG_ARC_CHORD (integer)

   IMG_ARC_NOFILL (integer)

   IMG_ARC_EDGED (integer)

   IMAGETYPE_GIF (integer)

   IMAGETYPE_JPEG (integer)

   IMAGETYPE_PNG (integer)

   IMAGETYPE_SWF (integer)

   IMAGETYPE_PSD (integer)

   IMAGETYPE_BMP (integer)

   IMAGETYPE_WBMP (integer)

   IMAGETYPE_XBM (integer)

   IMAGETYPE_TIFF_II (integer)

   IMAGETYPE_TIFF_MM (integer)

   IMAGETYPE_IFF (integer)

   IMAGETYPE_JB2 (integer)

   IMAGETYPE_JPC (integer)

   IMAGETYPE_JP2 (integer)

   IMAGETYPE_JPX (integer)

   IMAGETYPE_SWC (integer)

Examples

   Example 1. PNG creation with PHP
   <?php
       header("Content-type: image/png");
       $string = $_GET['text'];
       $im     = imagecreatefrompng("images/button1.png");
       $orange = imagecolorallocate($im, 220, 210, 60);
       $px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
       imagestring($im, 3, $px, 9, $string, $orange);
       imagepng($im);
       imagedestroy($im);
   ?>
   This example would be called from a page with a tag like: <img
   src="button.php?text=text">. The above button.php script then takes
   this "text" string and overlays it on top of a base image which in
   this case is "images/button1.png" and outputs the resulting image.
   This is a very convenient way to avoid having to draw new button
   images every time you want to change the text of a button. With this
   method they are dynamically generated.

   Table of Contents
   exif_imagetype -- Determine the type of an image
   exif_read_data -- Reads the EXIF headers from JPEG or TIFF. This way
          you can read meta data generated by digital cameras.

   exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG
          image

   gd_info -- Retrieve information about the currently installed GD
          library

   getimagesize -- Get the size of an image
   image_type_to_mime_type -- Get Mime-Type for image-type returned by
          getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

   image2wbmp -- Output image to browser or file
   imagealphablending -- Set the blending mode for an image
   imageantialias --  Should antialias functions be used or not
   imagearc -- Draw a partial ellipse
   imagechar -- Draw a character horizontally
   imagecharup -- Draw a character vertically
   imagecolorallocate -- Allocate a color for an image
   imagecolorallocatealpha -- Allocate a color for an image
   imagecolorat -- Get the index of the color of a pixel
   imagecolorclosest -- Get the index of the closest color to the
          specified color

   imagecolorclosestalpha -- Get the index of the closest color to the
          specified color + alpha

   imagecolorclosesthwb --  Get the index of the color which has the hue,
          white and blackness nearest to the given color

   imagecolordeallocate -- De-allocate a color for an image
   imagecolorexact -- Get the index of the specified color
   imagecolorexactalpha -- Get the index of the specified color + alpha
   imagecolormatch --  Makes the colors of the palette version of an
          image more closely match the true color version

   imagecolorresolve --  Get the index of the specified color or its
          closest possible alternative

   imagecolorresolvealpha --  Get the index of the specified color +
          alpha or its closest possible alternative

   imagecolorset -- Set the color for the specified palette index
   imagecolorsforindex -- Get the colors for an index
   imagecolorstotal -- Find out the number of colors in an image's
          palette

   imagecolortransparent -- Define a color as transparent
   imagecopy -- Copy part of an image
   imagecopymerge -- Copy and merge part of an image
   imagecopymergegray -- Copy and merge part of an image with gray scale
   imagecopyresampled -- Copy and resize part of an image with resampling
   imagecopyresized -- Copy and resize part of an image
   imagecreate -- Create a new palette based image
   imagecreatefromgd2 -- Create a new image from GD2 file or URL
   imagecreatefromgd2part -- Create a new image from a given part of GD2
          file or URL

   imagecreatefromgd -- Create a new image from GD file or URL
   imagecreatefromgif -- Create a new image from file or URL
   imagecreatefromjpeg -- Create a new image from file or URL
   imagecreatefrompng -- Create a new image from file or URL
   imagecreatefromstring -- Create a new image from the image stream in
          the string

   imagecreatefromwbmp -- Create a new image from file or URL
   imagecreatefromxbm -- Create a new image from file or URL
   imagecreatefromxpm -- Create a new image from file or URL
   imagecreatetruecolor -- Create a new true color image
   imagedashedline -- Draw a dashed line
   imagedestroy -- Destroy an image
   imageellipse -- Draw an ellipse
   imagefill -- Flood fill
   imagefilledarc -- Draw a partial ellipse and fill it
   imagefilledellipse -- Draw a filled ellipse
   imagefilledpolygon -- Draw a filled polygon
   imagefilledrectangle -- Draw a filled rectangle
   imagefilltoborder -- Flood fill to specific color
   imagefontheight -- Get font height
   imagefontwidth -- Get font width
   imageftbbox -- Give the bounding box of a text using fonts via
          freetype2

   imagefttext -- Write text to the image using fonts using FreeType 2
   imagegammacorrect -- Apply a gamma correction to a GD image
   imagegd2 -- Output GD2 image
   imagegd -- Output GD image to browser or file
   imagegif -- Output image to browser or file
   imageinterlace -- Enable or disable interlace
   imageistruecolor -- Finds whether an image is a truecolor image.
   imagejpeg -- Output image to browser or file
   imageline -- Draw a line
   imageloadfont -- Load a new font
   imagepalettecopy -- Copy the palette from one image to another
   imagepng -- Output a PNG image to either the browser or a file
   imagepolygon -- Draw a polygon
   imagepsbbox --  Give the bounding box of a text rectangle using
          PostScript Type1 fonts

   imagepscopyfont --  Make a copy of an already loaded font for further
          modification

   imagepsencodefont -- Change the character encoding vector of a font
   imagepsextendfont -- Extend or condense a font
   imagepsfreefont -- Free memory used by a PostScript Type 1 font
   imagepsloadfont -- Load a PostScript Type 1 font from file
   imagepsslantfont -- Slant a font
   imagepstext -- To draw a text string over an image using PostScript
          Type1 fonts

   imagerectangle -- Draw a rectangle
   imagerotate -- Rotate an image with a given angle
   imagesavealpha --  Set the flag to save full alpha channel information
          (as opposed to single-color transparency) when saving PNG
          images.

   imagesetbrush -- Set the brush image for line drawing
   imagesetpixel -- Set a single pixel
   imagesetstyle -- Set the style for line drawing
   imagesetthickness -- Set the thickness for line drawing
   imagesettile -- Set the tile image for filling
   imagestring -- Draw a string horizontally
   imagestringup -- Draw a string vertically
   imagesx -- Get image width
   imagesy -- Get image height
   imagetruecolortopalette -- Convert a true color image to a palette
          image

   imagettfbbox -- Give the bounding box of a text using TrueType fonts
   imagettftext -- Write text to the image using TrueType fonts
   imagetypes -- Return the image types supported by this PHP build
   imagewbmp -- Output image to browser or file
   iptcembed -- Embed binary IPTC data into a JPEG image
   iptcparse --  Parse a binary IPTC http://www.iptc.org/ block into
          single tags.

   jpeg2wbmp -- Convert JPEG image file to WBMP image file
   png2wbmp -- Convert PNG image file to WBMP image file
   read_exif_data -- Alias of exif_read_data()
   ______________________________________________________________________

   Prev             Home           Next
   ob_iconv_handler  Up  exif_imagetype
