Page 2 of 4

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T13:50:18-07:00
by Bonzo
I would just try converting a jpg to a png for now and look into the pdf problem if this works. Put the jpg file into the same directory as the php page and try:

Code: Select all

exec(" C:\Program Files\ImageMagick-6.8.6-Q16\convert.exe input.jpg output.png");

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:05:43-07:00
by jaykappy
I would really like to get this to work as I now have time invested...and like imagemagick....but so confused right now...
does anyone know of any other PDF to PNG converters out there that can be run from PHP?
I need to grab the first page of the PDF, resize it and store in another folder...

If I run this I get this error:

Code: Select all

			$input = '/uploads/Test/17281.pdf';
			$output = '/uploads/Test/test.png';

			$cmd = "$input $output";

			echo $input.'<br>';
			echo $output.'<br>';

			$array=array(); 
			echo "<pre>"; 
			exec("convert $cmd 2>&1", $array);  
			echo "<br>".print_r($array)."<br>"; 
			echo "</pre>"; 
ERROR:

Code: Select all

/uploads/Test/17281.pdf
/uploads/Test/test.png
Array
(
    [0] => Invalid Parameter - /Test
)

1


If I run this I get this

Code: Select all

			$input = chmod("156.142.2.31:84/inetpub/wwwroot/ImageUpload/uploads/Test/17281.pdf[0]", 0755);
			$output = chmod("156.142.2.31:84/inetpub/wwwroot/ImageUpload/uploads/Test/test.png", 0755);

			$cmd = "$input $output";


			$array=array(); 
			echo "<pre>"; 
			exec("convert $cmd 2>&1", $array);  
			echo "<br>".print_r($array)."<br>"; 
			echo "</pre>"; 

Code: Select all

Array
(
    [0] => Must specify a file system
)

1

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:06:30-07:00
by jaykappy
did see your last post...will try that...

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:15:21-07:00
by jaykappy
I tried this and NO ERRORS but no .png created

exec(" C:\Program Files\ImageMagick-6.8.6-Q16\convert.exe C:\Temp\Test.jpg C:\Temp\Test.png");

echo 'DONE';

BUT I CAN do this from the command prompt with : CONVERT in.jpg out.jpg


WOULD be nice if imagemagick documentation had some documentation on how to do this from Win or Linux in a couple different languages...almost ready to scrap it but really really want to get this working...

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:23:11-07:00
by Bonzo
Try this now:

Code: Select all

$array=array(); 
         echo "<pre>"; 
         exec(" C:\Program Files\ImageMagick-6.8.6-Q16\convert.exe C:\Temp\Test.jpg C:\Temp\Test.png 2>&1", $array);  
         echo "<br>".print_r($array)."<br>"; 
         echo "</pre>"; 
I am off to bed now!

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:39:22-07:00
by snibgo
I know nothing about PHP, so can't help there.

However, the message "Must specify a file system" comes from Microsoft convert, a utility that converts one filesystem into another. So your script successfully calls a program, but the wrong one.

As suggested, putting the full path to ImageMagick convert will remove that problem.

Re: Convert using ImageMagick using PHP

Posted: 2013-07-15T14:44:50-07:00
by fmw42
snibgo has a good point!

see http://www.imagemagick.org/Usage/windows/#convert_issue

or http://savage.net.au/ImageMagick/html/i ... nvert.html

where the other solution is to rename the IM convert.exe to something like imconvert.exe

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T05:44:28-07:00
by jaykappy
thanks for all your thoughts....going to look at those links...

Bonzo...I added your bit of code...and got the below.

Array
(
[0] => 'C:\Program' is not recognized as an internal or external command,
[1] => operable program or batch file.
)

1

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T06:47:33-07:00
by jaykappy
I went to the links posted and read about setting the regedit...I did this via the setting the HKEY_CURRENT_USER as specified on my server. SO CHANGING the HKEY to try and default the IMageMagick convert.exe seems to have worked? I think

I now run this code: and I get

Code: Select all

$input = chmod("156.142.2.31:84/inetpub/wwwroot/ImageUpload/uploads/Test/17281.pdf[0]", 0755);
$output = chmod("156.142.2.31:84/inetpub/wwwroot/ImageUpload/uploads/Test/test.png", 0755);
			
$cmd = "$input $output";
$array=array(); 
echo "<pre>"; 
exec("convert $cmd 2>&1", $array);  
echo "<br>".print_r($array)."<br>"; 
echo "</pre>"; 

Code: Select all

Array
(
    [0] => Version: ImageMagick 6.8.6-4 2013-07-08 Q16 http://www.imagemagick.org
    [1] => Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
    [2] => Features: DPC OpenMP
    [3] => Delegates: bzlib djvu fftw fontconfig freetype jng jp2 jpeg lcms lzma openexr pango png ps tiff x xml zlib
    [4] => 
    [5] => Usage: convert.exe [options ...] file [ [options ...] file ...] [options ...] file

.....  Erase a few hundred lines

    [303] => number.  To specify a particular image format, precede the filename
    [304] => with an image format name and a colon (i.e. ps:image) or specify the
    [305] => image type as the filename suffix (i.e. image.ps).  Specify 'file' as
    [306] => '-' for standard input or output.
)

1

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T07:02:17-07:00
by jaykappy
OK with the last post seemingly now the correct convert is working I tried the below and am now getting this error
Getting permission errors...do I need to open permissions in IIS or on the folders themselves...
I have EVERYONE group set to full rights on the uploads folder...

oh yea I move the ImageMagick folder that has the convert to my website location for testing.

Code: Select all

$array=array(); 
echo "<pre>"; 
exec(" C:\inetpub\wwwroot\ImageUpload\ImageMagick-6.8.6-Q16\convert.exe C:\inetpub\wwwroot\ImageUpload\uploads\test.jpg C:\inetpub\wwwroot\ImageUpload\uploads\Test.png 2>&1", $array); 		 
echo "<br>".print_r($array)."<br>"; 
echo "</pre>"; 
echo 'DONE';

Code: Select all

Array
(
    [0] => convert.exe: unable to open image `C:\inetpub\wwwroot\ImageUpload\uploads': Permission denied @ error/blob.c/OpenBlob/2643.
    [1] => convert.exe: no decode delegate for this image format `C:\inetpub\wwwroot\ImageUpload\uploads' @ error/constitute.c/ReadImage/552.
    [2] => convert.exe: unable to open image `est.jpg': No such file or directory @ error/blob.c/OpenBlob/2643.
    [3] => convert.exe: no images defined `C:\inetpub\wwwroot\ImageUpload\uploads\Test.png' @ error/convert.c/ConvertImageCommand/3106.
)

1
DONE

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T07:38:49-07:00
by Bonzo
I do not know about permissions on Windows servers.
I would presume the code needs the path to the program but the code then needs the relative/absolute path of the image from the code.

Code: Select all

$array=array(); 
echo "<pre>"; 
// Input test.jpg and Test.png in the same folder as the php page
exec(" C:\inetpub\wwwroot\ImageUpload\ImageMagick-6.8.6-Q16\convert.exe test.jpg Test.png 2>&1", $array);        
echo "<br>".print_r($array)."<br>"; 
echo "</pre>"; 
echo 'DONE';

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T08:07:11-07:00
by jaykappy
Think I got it (obviously with your help...very much appreciated..)....more testing ..... BRB....very excited...

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T08:17:25-07:00
by jaykappy
Well not so fast....

If I do this with a jpg to png conversion it works great...

Code: Select all

$array=array(); 
echo "<pre>"; 	 
exec(" C:\inetpub\wwwroot\ImageUpload\ImageMagick-6.8.6-Q16\convert.exe uploads/17364.jpg uploads/thumbs/Test.png 2>&1", $array);  	
echo "<br>".print_r($array)."<br>"; 
 echo "</pre>"; 

But if I try it with a PDF I get these errors

exec(" C:\inetpub\wwwroot\ImageUpload\ImageMagick-6.8.6-Q16\convert.exe uploads/17364.pdf uploads/thumbs/Test.png 2>&1", $array);

Code: Select all

Array
(
    [0] => convert.exe: `%s' (%d) "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72"  "-sOutputFile=C:/Windows/TEMP/magick-7672mhv7a1isS9EZ-1" "-fC:/Windows/TEMP/magick-76725Fkm6uQDc9vx" "-fC:/Windows/TEMP/magick-7672ZHhrZ6z0xUXd" @ error/utility.c/SystemCommand/2033.
    [1] => convert.exe: Postscript delegate failed `uploads/17364.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/682.
    [2] => convert.exe: no images defined `uploads/thumbs/Test.jpg' @ error/convert.c/ConvertImageCommand/3106.
)

1
DONE

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T08:35:26-07:00
by Bonzo
I assume ghostscript is installed but you can run this to find out > change your path to convert:

Code: Select all

<?php
echo "<pre>";
system ("convert -list Delegate");
system ("convert -list format");
echo "</pre>";
?>
 

Re: Convert using ImageMagick using PHP

Posted: 2013-07-16T08:51:38-07:00
by jaykappy
Did that and I got this huge list....

Maybe ghostscript is not installed? I am very confused...Its not in the imagemagick folder containing the convert.exe....so maybe its not installed..

Where do I go to download and what version? GhostPCL, GhostPDF, GhostXPS, MuPDF???????????

Code: Select all

Path: C:\Program Files\ImageMagick-6.8.6-Q16\delegates.xml

Delegate                Command
-------------------------------------------------------------------------------
        cgm =>          "ralcgm -d ps "%i." "%o." "%u."
        dot =>          "dot -Tps "%i" -o "%o"
        dvi =>          "dvips -q -o "%o" "%i"
        emf =>          "emfplus.exe -format png "%i" "%o"
        eps<=>pdf       "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i"
        eps<=>ps        "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pswrite "-sOutputFile=%o" -- "%i"
        fig =>          "/usr/X11R6/bin/fig2dev -L ps "%i" "%o"
       gplt =>          "/bin/echo "set size 1.25,0.62     set terminal postscript portrait color solid; set output "%o"; load "%i"" > "%u";gnuplot %u"
        hpg =>          "hp2xx -q -m eps -f "%o" "%i"
       hpgl =>          "hp2xx -q -m eps -f "%o" "%i"
        htm =>          "html2ps -U -o "%o" "%i"
       html =>          "html2ps -U -o "%o" "%i"
       ilbm =>          "ilbmtoppm "%i" > "%o"
        jxr =>          "mv "%i" "%i.jxr"; "@JXRDecodeDelegate@" -i "%i.jxr" -o "%o.pnm"; mv "%i.jxr" "%i"; mv "%o.pnm" "%o"
        man =>          "groff -man -Tps "%i" > "%o"
mpeg:decode =>          "ffmpeg.exe" -v -1 -i "%i" -vframes %S -vcodec pam -an -f rawvideo -y "%u.pam"
        pdf<=>ps        "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pswrite "-sOutputFile=%o" -- "%i"
        pdf<=>eps       "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -sDEVICE=epswrite "-sOutputFile=%o" -- "%i"
        pgp =>          "pgpv -fq "%i"
        png<= launch    "cmd.exe /C start "%m" file:///"%i."
        png<= show      "cmd.exe /C start "%m" file:///"%i."
        png<= win       "cmd.exe /C start "%m" file:///"%i."
        pnm<= jxr       "mv "%i" "%i.pnm"; "@JXREncodeDelegate@" -i "%i.pnm" -o "%o.jxr"; mv "%i.pnm" "%i"; mv "%o.jxr" "%o"
        pnm<= ilbm      "ppmtoilbm -24if "%i" > "%o"
        pnm<= wdp       "mv "%i" "%i.pnm"; "@JXREncodeDelegate@" -i "%i.pnm" -o "%o.jxr"; mv "%i.pnm" "%i"; mv "%o.jxr" "%o"
        pov =>          "povray "+i"%i"" -D0 +o"%o" +fn%q +w%w +h%h +a -q9 -kfi"%s" -kff"%n"     convert -concatenate %o*.png "%o"
         ps<=>eps       "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=epswrite "-sOutputFile=%o" -- "%i"
         ps<=>pdf       "gswin32c.exe" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pdfwrite "-sOutputFile=%o" -- "%i"
       rgba<= rle       "pnmtorle -o "%o" -v "%i"
       scan =>          "scanimage -d "%i" > "%o"
      shtml =>          "html2ps -U -o "%o" "%i"
        sid =>          "mrsidgeodecode -if sid -i "%i" -of tif -o "%o" > "%u"
        svg =>          "rsvg-convert" -o "%o" "%i"
        txt<=>ps        "enscript -o "%o" "%i"
        wdp =>          "mv "%i" "%i.jxr"; "@JXRDecodeDelegate@" -i "%i.jxr" -o "%o.pnm"; mv "%i.jxr" "%i"; mv "%o.pnm" "%o"
        wmf =>          "emfplus.exe -format png "%i" "%o"
        xcf =>          "xcftopnm "%i" > "%o"
   Format  Module    Mode  Description
-------------------------------------------------------------------------------
      3FR  DNG       r--   Hasselblad CFV/H3D39II
        A* RAW       rw+   Raw alpha samples
      AAI* AAI       rw+   AAI Dune image
       AI  PDF       rw-   Adobe Illustrator CS2
      ART* ART       rw-   PFS: 1st Publisher Clip Art
      ARW  DNG       r--   Sony Alpha Raw Image Format
      AVI  MPEG      r--   Microsoft Audio/Visual Interleaved
      AVS* AVS       rw+   AVS X image
        B* RAW       rw+   Raw blue samples
      BGR* BGR       rw+   Raw blue, green, and red samples
     BGRA* BGR       rw+   Raw blue, green, red, and alpha samples
      BIE* JBIG      rw-   Joint Bi-level Image experts Group interchange format (1.6)
      BMP* BMP       rw-   Microsoft Windows bitmap image
     BMP2* BMP       -w-   Microsoft Windows bitmap image (V2)
     BMP3* BMP       -w-   Microsoft Windows bitmap image (V3)
      BRF* BRAILLE   -w-   BRF ASCII Braille format
        C* RAW       rw+   Raw cyan samples
      CAL* CALS      rw-   Continuous Acquisition and Life-cycle Support Type 1
           Specified in MIL-R-28002 and MIL-PRF-28002
     CALS* CALS      rw-   Continuous Acquisition and Life-cycle Support Type 1
           Specified in MIL-R-28002 and MIL-PRF-28002
   CANVAS* XC        r--   Constant image uniform color
  CAPTION* CAPTION   r--   Caption
      CIN* CIN       rw-   Cineon Image File
      CIP* CIP       -w-   Cisco IP phone image format
     CLIP* CLIP      rw+   Image Clip Mask
CLIPBOARD* CLIPBOARD rw-   The system clipboard
     CMYK* CMYK      rw+   Raw cyan, magenta, yellow, and black samples
    CMYKA* CMYK      rw+   Raw cyan, magenta, yellow, black, and alpha samples
      CR2  DNG       r--   Canon Digital Camera Raw Image Format
      CRW  DNG       r--   Canon Digital Camera Raw Image Format
      CUR* CUR       rw-   Microsoft icon
      CUT* CUT       r--   DR Halo
      DCM* DCM       r--   Digital Imaging and Communications in Medicine image
           DICOM is used by the medical community for images like X-rays.  The
           specification, "Digital Imaging and Communications in Medicine
           (DICOM)", is available at http://medical.nema.org/.  In particular,
           see part 5 which describes the image encoding (RLE, JPEG, JPEG-LS),
           and supplement 61 which adds JPEG-2000 encoding.
      DCR  DNG       r--   Kodak Digital Camera Raw Image File
      DCX* PCX       rw+   ZSoft IBM PC multi-page Paintbrush
      DDS* DDS       r--   Microsoft DirectDraw Surface
    DFONT* TTF       r--   Multi-face font package (Freetype 2.1.5)
     DJVU* DJVU      ---   Déjà vu
           See http://www.djvuzone.org/ for details about the DJVU format.  The
           DJVU 1.2 specification is available there and at
           ftp://swrinde.nde.swri.edu/pub/djvu/documents/.
      DNG  DNG       r--   Digital Negative
      DOT  DOT       ---   Graphviz
      DPS  DPS       ---   Display Postscript Interpreter
      DPX* DPX       rw-   SMPTE 268M-2003 (DPX 2.0)
           Digital Moving Picture Exchange Bitmap, Version 2.0.
           See SMPTE 268M-2003 specification at http://www.smtpe.org
           
      EMF  WMF       ---   Windows WIN32 API rendered Enhanced Meta File
     EPDF  PDF       rw-   Encapsulated Portable Document Format
      EPI  PS        rw-   Encapsulated PostScript Interchange format
      EPS  PS        rw-   Encapsulated PostScript
     EPS2* PS2       -w-   Level II Encapsulated PostScript
     EPS3* PS3       -w+   Level III Encapsulated PostScript
     EPSF  PS        rw-   Encapsulated PostScript
     EPSI  PS        rw-   Encapsulated PostScript Interchange format
      EPT  EPT       rw-   Encapsulated PostScript with TIFF preview
     EPT2  EPT       rw-   Encapsulated PostScript Level II with TIFF preview
     EPT3  EPT       rw+   Encapsulated PostScript Level III with TIFF preview
      ERF  DNG       r--   Epson RAW Format
      EXR  EXR       ---   High Dynamic-range (HDR)
      FAX* FAX       rw+   Group 3 FAX
           FAX machines use non-square pixels which are 1.5 times wider than
           they are tall but computer displays use square pixels, therefore
           FAX images may appear to be narrow unless they are explicitly
           resized using a geometry of "150x100%".
           
     FITS* FITS      rw-   Flexible Image Transport System
      FPX  FPX       ---   FlashPix Format
  FRACTAL* PLASMA    r--   Plasma fractal image
      FTS* FTS       rw-   Flexible Image Transport System
        G* RAW       rw+   Raw green samples
       G3* FAX       rw-   Group 3 FAX
      GIF* GIF       rw+   CompuServe graphics interchange format
    GIF87* GIF       rw-   CompuServe graphics interchange format (version 87a)
 GRADIENT* GRADIENT  r--   Gradual linear passing from one shade to another
     GRAY* GRAY      rw+   Raw gray samples
   GROUP4* TIFF      rw-   Raw CCITT Group4
       GV  DOT       ---   Graphviz
     HALD*           r--   Identity Hald color lookup table image
      HDR* HDR       rw+   Radiance RGBE image format
HISTOGRAM* HISTOGRAM -w-   Histogram of the image
      HRZ* HRZ       rw-   Slow Scan TeleVision
      HTM* HTML      -w-   Hypertext Markup Language and a client-side image map
     HTML* HTML      -w-   Hypertext Markup Language and a client-side image map
      ICB* TGA       rw-   Truevision Targa image
      ICO* ICON      rw+   Microsoft icon
     ICON* ICON      rw-   Microsoft icon
     INFO  INFO      -w+   The image format and characteristics
   INLINE* INLINE    r--   Base64-encoded inline images
      IPL* IPL       rw+   IPL Image Sequence
   ISOBRL* BRAILLE   -w-   ISO/TR 11548-1 format
      J2C* JP2       rw-   JPEG-2000 Code Stream Syntax
      J2K* JP2       rw-   JPEG-2000 Code Stream Syntax
      JBG* JBIG      rw+   Joint Bi-level Image experts Group interchange format (1.6)
     JBIG* JBIG      rw+   Joint Bi-level Image experts Group interchange format (1.6)
      JNG* PNG       rw-   JPEG Network Graphics
           See http://www.libpng.org/pub/mng/ for details about the JNG
           format.
      JNX* JNX       r--   Garmin tile format
      JP2* JP2       rw-   JPEG-2000 File Format Syntax
      JPC* JP2       rw-   JPEG-2000 Code Stream Syntax
     JPEG* JPEG      rw-   Joint Photographic Experts Group JFIF format (80)
      JPG* JPEG      rw-   Joint Photographic Experts Group JFIF format (80)
      JPX* JP2       rw-   JPEG-2000 File Format Syntax
        K* RAW       rw+   Raw black samples
      K25  DNG       r--   Kodak Digital Camera Raw Image Format
      KDC  DNG       r--   Kodak Digital Camera Raw Image Format
    LABEL* LABEL     r--   Image label
        M* RAW       rw+   Raw magenta samples
      M2V  MPEG      rw+   MPEG Video Stream
      M4V  MPEG      rw+   Raw MPEG-4 Video
      MAC* MAC       r--   MAC Paint
      MAP* MAP       rw-   Colormap intensities and indices
     MASK* MASK      rw+   Image Clip Mask
      MAT  MAT       rw+   MATLAB level 5 image format
    MATTE* MATTE     -w+   MATTE format
      MEF  DNG       r--   Mamiya Raw Image File
     MIFF* MIFF      rw+   Magick Image File Format
      MNG* PNG       rw+   Multiple-image Network Graphics (libpng 1.5.13)
           See http://www.libpng.org/pub/mng/ for details about the MNG
           format.
     MONO* MONO      rw-   Raw bi-level bitmap
      MOV  MPEG      rw+   MPEG Video Stream
      MP4  MPEG      rw+   MPEG-4 Video Stream
      MPC* MPC       rw+   Magick Persistent Cache image format
     MPEG  MPEG      rw+   MPEG Video Stream
      MPG  MPEG      rw+   MPEG Video Stream
      MRW  DNG       r--   Sony (Minolta) Raw Image File
      MSL* MSL       rw+   Magick Scripting Language
     MSVG  SVG       rw+   ImageMagick's own SVG internal renderer
      MTV* MTV       rw+   MTV Raytracing image format
      MVG* MVG       rw-   Magick Vector Graphics
      NEF  DNG       r--   Nikon Digital SLR Camera Raw Image File
      NRW  DNG       r--   Nikon Digital SLR Camera Raw Image File
     NULL* NULL      rw-   Constant image of uniform color
        O* RAW       rw+   Raw opacity samples
      ORF  DNG       r--   Olympus Digital Camera Raw Image File
      OTB* OTB       rw-   On-the-air bitmap
      OTF* TTF       r--   Open Type font (Freetype 2.1.5)
      PAL* UYVY      rw-   16bit/pixel interleaved YUV
     PALM* PALM      rw+   Palm pixmap
      PAM* PNM       rw+   Common 2-dimensional bitmap format
    PANGO* PANGO     ---   Pango Markup Language
  PATTERN* PATTERN   r--   Predefined pattern
      PBM* PNM       rw+   Portable bitmap format (black and white)
      PCD* PCD       rw-   Photo CD
     PCDS* PCD       rw-   Photo CD
      PCL  PCL       rw+   Printer Control Language
      PCT* PICT      rw-   Apple Macintosh QuickDraw/PICT
      PCX* PCX       rw-   ZSoft IBM PC Paintbrush
      PDB* PDB       rw+   Palm Database ImageViewer Format
      PDF  PDF       rw+   Portable Document Format
     PDFA  PDF       rw+   Portable Document Archive Format
      PEF  DNG       r--   Pentax Electronic File
      PES* PES       r--   Embrid Embroidery Format
      PFA* TTF       r--   Postscript Type 1 font (ASCII) (Freetype 2.1.5)
      PFB* TTF       r--   Postscript Type 1 font (binary) (Freetype 2.1.5)
      PFM* PFM       rw+   Portable float format
      PGM* PNM       rw+   Portable graymap format (gray scale)
      PGX* JP2       r--   JPEG-2000 VM Format
    PICON* XPM       rw-   Personal Icon
     PICT* PICT      rw-   Apple Macintosh QuickDraw/PICT
      PIX* PIX       r--   Alias/Wavefront RLE image format
    PJPEG* JPEG      rw-   Joint Photographic Experts Group JFIF format (80)
   PLASMA* PLASMA    r--   Plasma fractal image
      PNG* PNG       rw-   Portable Network Graphics (libpng 1.5.13)
           See http://www.libpng.org/ for details about the PNG format.
    PNG00* PNG       rw-   PNG inheriting bit-depth and color-type from original
    PNG24* PNG       rw-   opaque or binary transparent 24-bit RGB (zlib 1.2.7)
    PNG32* PNG       rw-   opaque or transparent 32-bit RGBA
    PNG48* PNG       rw-   opaque or binary transparent 48-bit RGB
    PNG64* PNG       rw-   opaque or transparent 64-bit RGBA
     PNG8* PNG       rw-   8-bit indexed with optional binary transparency
      PNM* PNM       rw+   Portable anymap
      PPM* PNM       rw+   Portable pixmap format (color)
  PREVIEW* PREVIEW   -w-   Show a preview an image enhancement, effect, or f/x
       PS  PS        rw+   PostScript
      PS2* PS2       -w+   Level II PostScript
      PS3* PS3       -w+   Level III PostScript
      PSB* PSD       rw+   Adobe Large Document Format
      PSD* PSD       rw+   Adobe Photoshop bitmap
     PTIF* TIFF      rw+   Pyramid encoded TIFF
      PWP* PWP       r--   Seattle Film Works
        R* RAW       rw+   Raw red samples
RADIAL-GRADIENT* GRADIENT  r--   Gradual radial passing from one shade to another
      RAF  DNG       r--   Fuji CCD-RAW Graphic File
      RAS* SUN       rw+   SUN Rasterfile
      RGB* RGB       rw+   Raw red, green, and blue samples
     RGBA* RGB       rw+   Raw red, green, blue, and alpha samples
     RGBO* RGB       rw+   Raw red, green, blue, and opacity samples
      RLA* RLA       r--   Alias/Wavefront image
      RLE* RLE       r--   Utah Run length encoded image
      RW2  DNG       r--   Panasonic Lumix Raw Image
      SCR* SCR       r--   ZX-Spectrum SCREEN$
      SCT* SCT       r--   Scitex HandShake
      SFW* SFW       r--   Seattle Film Works
      SGI* SGI       rw+   Irix RGB image
    SHTML* HTML      -w-   Hypertext Markup Language and a client-side image map
SPARSE-COLOR* TXT       -w+   Sparse Color
      SR2  DNG       r--   Sony Raw Format 2
      SRF  DNG       r--   Sony Raw Format
  STEGANO* STEGANO   r--   Steganographic image
      SUN* SUN       rw+   SUN Rasterfile
      SVG  SVG       rw+   Scalable Vector Graphics (XML 2.9.0)
     SVGZ  SVG       rw+   Compressed Scalable Vector Graphics (XML 2.9.0)
     TEXT* TXT       rw+   Text
      TGA* TGA       rw-   Truevision Targa image
THUMBNAIL* THUMBNAIL -w+   EXIF Profile Thumbnail
     TIFF* TIFF      rw+   Tagged Image File Format (LIBTIFF, Version 4.0.3)
   TIFF64* TIFF      rw-   Tagged Image File Format (64-bit) (LIBTIFF, Version 4.0.3)
     TILE* TILE      r--   Tile image with a texture
      TIM* TIM       r--   PSX TIM
      TTC* TTF       r--   TrueType font collection (Freetype 2.1.5)
      TTF* TTF       r--   TrueType font (Freetype 2.1.5)
      TXT* TXT       rw+   Text
     UBRL* BRAILLE   -w-   Unicode Text format
      UIL* UIL       -w-   X-Motif UIL table
     UYVY* UYVY      rw-   16bit/pixel interleaved YUV
      VDA* TGA       rw-   Truevision Targa image
    VICAR* VICAR     rw-   VICAR rasterfile format
      VID* VID       rw+   Visual Image Directory
     VIFF* VIFF      rw+   Khoros Visualization image
      VST* TGA       rw-   Truevision Targa image
     WBMP* WBMP      rw-   Wireless Bitmap (level 0) image
     WEBP* WEBP      ---   WebP Image Format
      WMF* WMF       ---   Windows Meta File
 WMFWIN32  WMFWIN32  ---   Windows WIN32 API rendered Meta File
      WMV  MPEG      rw+   Windows Media Video
      WMZ* WMZ       ---   Compressed Windows Meta File
      WPG* WPG       r--   Word Perfect Graphics
        X* X         ---   X Image
      X3F  DNG       r--   Sigma Camera RAW Picture File
      XBM* XBM       rw-   X Windows system bitmap (black and white)
       XC* XC        r--   Constant image uniform color
      XCF* XCF       r--   GIMP image
      XPM* XPM       rw-   X Windows system pixmap (color)
      XPS  XPS       r--   Microsoft XML Paper Specification
       XV* VIFF      rw+   Khoros Visualization image
      XWD* XWD       ---   X Windows system window dump (color)
        Y* RAW       rw+   Raw yellow samples
    YCbCr* YCbCr     rw+   Raw Y, Cb, and Cr samples
   YCbCrA* YCbCr     rw+   Raw Y, Cb, Cr, and alpha samples
      YUV* YUV       rw-   CCIR 601 4:1:1 or 4:2:2

* native blob support
r read support
w write support
+ support for multiple images
DONE