imagemagick cannot read these files - php

I have jasper installed and the lastest version of imagemagick. When I attempt to process these two files: here and here
I get a decode error. Can anyone let me know which other packages I need to install for imagemagick to read these files properly?

Has your IM been compiled with --with-jpeg=no or --without-jpeg?
Or did the compilation fail to include JPEG support because of a lack of decoder libraries being installed? You need libjpeg installed, and the development header files for that library.
You can find out what formats are supported by issuing the command:
$ identify -list format
If you state your OS (inc. distribution if Linux) and how you installed IM, you might get more information on how to resolve it. If you are on linux the package names are probably libjpeg and libjpeg-devel.

Related

Using PHP Imagick extension on Mac does not find Tiff delegate

I've installed ImageMagick on my Mac and am trying to convert a TIFF image to a JPEG image using the PHP API that is provided by the ImageMagick extension. When I try to do that I get the following error:
no decode delegate for this image format
When I do a convert image1.tiff image1.jpg on the command line it works.
For some reason the PHP extension for Imagick thinks the TIFF delegate is not installed when it clearly is. Why would I get different results and how could I fix this?
I found the solution. I had installed both ImageMagick and the PHP ImageMagick extension php53-imagick using Homebrew. When installing them this way you don't have many options in terms of configuration. php53-imagick was configured to use the Homebrew installation of ImageMagick.
What I did to solve the problem was download and compile the source of the Imagick PHP extension myself. The key configuration that you have to make is ./configure --with-imagick=/user/local or wherever your ImageMagic/wand folder is.
The imagick.so will appear in the modules directory and you'll need to add it to the php.ini
Coming from a different question: There's a more convenient solution in Homebrew with the command
brew install libtiff
brew install imagemagick --with-libtiff
(see Imagemagick can not find deletegates library for .tiff format on mac os x mountain lion for reference)

Imagick shows 0 supported formats in phpinfo

I have installed the latest release of ImageMagick (ImageMagick 6.8.5-10 2013-06-05 Q16)
Along with the pecl package Imagick version 3.1.0RC2
Installation appeared to be a complete success and I now have an Imagick section showing in phpinfo()
However it shows as having 0 supported file formats. When I check the supported file formats from the command line using ImageMagick directly, they are all there an working. Just not with the php module.
This of course causes problems when trying to use it within PHP. I can instantiate the Imagick object fine:
$im-> new Imagick()
But trying to read a file fails:
$im->readFile('location');
Does anyone have any idea how to fix this?
I am running an Amazon EC2 linux instance with nginx/fcgi/PHP5.4.
Thanks in advance
This is related to a problem with the way how the PHP module of iMagick is installed. I would suggest you revisit your installation and install this properly. Then revisit PHPINFO to confirm that you see all the necessary formats.
Install on Debian
http://rakesh.sankar-b.com/2011/05/25/install-imagemagick-from-source-in-debian/
Install on CentOS
http://rakesh.sankar-b.com/2010/07/13/how-to-install-imagemagick-linux-yum/
http://forum.directadmin.com/showthread.php?t=44449

ImageMagick supported formats no value

I have installed download and install ImageMagick-6.8.3-7-Q16-x86-dll.exe from the link http://imagemagick.org/script/binary-releases.php#windows and I am using Windows 7 and PHP 5.3.8.
When in install this it got installed correctly in my machine and convert commands works perfectly. On my convert config what shows is here:
But on my phpinfo section I get:
ImageMagick supported formats has no value
I got all the image magick values like this https://www.evernote.com/shard/s297/sh/12397c86-d016-4ca4-9415-fd541daeca39/2fc504bf5ddba5693efd3249402b2b5c.
I don't know why it is getting as no value i have installed the same ImageMagick-6.8.3-7-Q16-x86-dll.exe on php 5.3.8 in my 32 bit windows7 machine . The php_imagick.dll i downloded from other website. I don't know what is the issue i am having in install imagemaagick, if it is the issue with php_imagick.dll version can anybody suggest proper php_imagick version for this configuration?
I have spent several days looking for a solution, and I finally found it with Sysinternals procmon.
I found out apache was looking for dll files like IM_MOD_xxxx.dll in folders c:\windows\system and /bin. Copying the files to one of those folders did the trick to me.
Cood luck.
Not all versions of ImageMagick will work with all versions of php_imagick.dll. The Imagick extension v3.4.* in combination with ImageMagick 7.* gave no support for any image format. When I downgraded to ImageMagick 6.9.* the problem was solved.
On an echo of phpinfo you can see which version of ImageMagick is needed. Search for "Imagick using ImageMagick library version" and "Imagick compiled with ImageMagick version" (which should be equal).
List of binary downloads:
https://www.imagemagick.org/download/binaries/
Or older versions:
http://windows.php.net/downloads/pecl/deps/
Step by step instructions for installing ImageMagick on Windows:
https://stackoverflow.com/a/28872879/2366136
Since its first result on google when looking for solution to this issue I'll add one that worked for me. Source: http://forums.zend.com/viewtopic.php?t=2397#p15226
I was having issues with PHP 5.6, it recognized the extension but no formats were supported. (http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/)
Installing latest version of imagemagick(with dynamic libs) and copying DLL files from imagemagickDir/modules/coders/* and imagemagickDir/modules/filters/* to imagemagick root helped, now imagemagick works properly from when calling php.
Don't forget to give IIS access to imagemagick folder.
EDIT:
When IIS successfully recognized formats, I ran into compatibility issues.
Working combo for PHP 5.6:
http://windows.php.net/downloads/pecl/releases/imagick/3.2.0b2/
http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-6.8.8-9-Q16-x86-dll.exe
Check that
MAGICK_HOME=C:\Program Files (x86)\ImageMagick-6.8.8-Q16\modules\coders
is set.
I had the same problem, and tried everything. You do not need - as I thought - ImageMagick installed on your system to run the Imagick module for PHP. You simply need to make sure you include both the CORE_RL_* dlls as well as the IM_MOD_* dlls in the apache/bin directory, and then also the php_imagick.dll in the php/ext directory.
I'm running PHP 7.0.25 x86 via XAMPP on Windows, and these instructions were incredibly simple and helpful:
https://mlocati.github.io/articles/php-windows-imagick.html
There are a lot of answers out there, as the landscape for this program and PHP have changed over time.
I am so cutting edge as to be using PHP 7.1 at the moment. At first I was copying DLLs all over the place like all of the instructions have you do. Luckily, all that is necessary is the latest PECL package and the corresponding version of Imagick for your system, which was the tricky part. You can't used the latest Imagick (version 7 at the time of writing this) if you want to use the PHP extension, until the extension is upgraded. You have to install a version of Imagick on your system that matches the PHP extension version.
As others have instructed, download the latest PECL package for imagick for your PHP version. Since I'm using the thread-safe x64 version of PHP 7.1, I want the 3.4.3RC1 package, the only one with a DLL for my version of PHP at this time.
Of these files, I only need to copy over php_imagick.dll. Next, head over to http://windows.php.net/downloads/pecl/deps/ and download the latest Imagick for your system which is probably going to be the VC14 one at this point, for which it seems just a matter of installing the corresponding C++ Redistributable package on your system for it to work. Simply unzip the files and add the bin to your path. Again, if you have a newer version of Imagick, you'll want to replace it with this one because this is the one that will work with the php extension.
At this point, you should be able to restart apache and confirm that the imagick extension is enabled in the phpinfo. It should show you the version of Imagick for the PHP extension. Again, if the Imagick on your system in your path is a version that matches what is shown for the PHP extension, then you should see the list of supported formats that it is getting from the DLLs from the version 6 Imagick on your system. You will not need to copy them to apache bin or anywhere else, nor make a MAGICK_HOME folder.
Even after installing imagick & imagemagick correctly, if it is not working, please check your Apache Environment PATH Variable. Most probably if the path variable is not showing your ImageMagick inatallation folder, please add that into windows advanced system settings/environment variables/system variables -> PATH.
Restart WAMP server and check to see the phponfo for Apache Environment PATH Variable.
I searched posts and tried various suggestions - for several hours. I did not attain success until I tried the steps here: https://mlocati.github.io/articles/php-windows-imagick.html (as posted by Codesmith - and I agree the steps are short, easy-to-follow). My need was to install on WAMP.
The page behind this link tells how to determine the correct version to download of Imagick and ImageMagick. Just extract three sets of files to stated directories, make a change in php.ini, and restart WAMP. My code uses only JPEG and PNG formats, so of the format-based DLLs, I moved only those.

How can I add jpeg support to Heroku PHP buildpack

I am developping an app using Heroku. I will need to manipulate images but unfortunately jpeg is not supported by default. I spoke with support and here is their answer:
"We unfortunately don't support jpeg by default. But the good
news is that we open sourced our PHP buildpack, so hopefully the
community will be able to bring that in.
In case you're interested, the buildpack is here:
https://github.com/heroku/heroku-buildpack-php"
I know I need to add --with-jpeg just before the --with-gd in the ./configure of PHP
But the buildpack only gives the ability to update the php.ini and compile files and none of them contains the magic line to update (./configure...) ...
Is there is a way to add jpeg support through the two mentioned files ?
Current workaround is to install imagick.so - have compiled the library and instruction # github https://github.com/alkhoo/heroku-cedar-php-extension
Also compiled apc.so since it is missing from Heroku's extension. The gd.so extension cannot be used since Heroku's PHP had GD compiled in php* binary. Waiting for someone to create a PHP buildpack without GD compiled.
Others have compiled zlib.so and mbstring.so (in case anyone is interested).

When I try to make php with --with-gd, I get an error that "configure: error: libpng.(a|so) not found." What's wrong?

So far, I've made sure I've installed libpng and libjpeg with DarwinPorts (I'm running on OS X Leopard), but that doesn't seem to do the trick. I've read in a number of places that you need the development files (i.e. libpng-devel, etc.) as well to make this work. I'm a little lost. Can someone help me understand what I'm supposed to do? I'm happy to provide any more information that's necessary.
My configuration for PHP looks like:
./configure '--with-png-dir=/usr/local' '--with-jpeg-dir=/usr/local' '--with-gd'
and I'm trying to install PHP 5.2.9. I've gotten the make to work without the '--with-gd' option. I've also been copying what I've found on various sites, so I might be doing something really wrong.
This error indicates that the libpng.so or libpng.a file could not be found. These files are created when libpng is compiled.
I don't know much about the Mac OS X way of installing things, but if you want to do it the Mac OS X way, you'll probably need to find and install that libpng-devel package.
Otherwise, you'll need to grab the source of libpng and compile it yourself. It depends on zlib, which you probably already have shared libraries for, but if not, you'll have to get that too.
Here's a guide to compiling libpng on Mac OS X. It has a darwin-specific Makefile (not sure why that's needed, but worth a try).
I believe MacPorts installs by default to /opt/local not /usr/local? Maybe try /opt/local instead?
If you have fink, here's what I'm currently using (so i know it works)
Here are the fink packages i have installed.
i libpng3 1:1.2.29-1 PNG image format handling library
i libpng3-shlibs 1:1.2.29-1 Shared libraries for libpng3 package
i libjpeg 6b-17 JPEG image format handling library
i libjpeg-bin 6b-17 Executables for libjpeg package
i libjpeg-shlibs 6b-17 Shared libraries for libjpeg package
Then to configure those parts of my php I use
'--with-gd' \
'--with-jpeg-dir=/sw' \
'--with-png-dir=/sw' \

Categories