Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Imagick not working with GAE runtime php82 or php83

Hi,

We have been using Imagick with Google App Engine with runtime php81 for some time.  I changed the runtime in app.yaml php83 and received the following error when testing Imagick:

Uncaught ImagickException: no decode delegate for this image format `SVG' @ error/blob.c/BlobToImage/363 in /workspace/...

I tried runtime php82 and received the same error.  Why is this?

I understand there may not yet be an official Imagick release for 8.3, but there is for 8.2.  Yet php82 doesn't work either.  Did I do something wrong?

Thanks!

0 4 301
4 REPLIES 4

Are you sure you have the right version (for php 8.2) installed?

    ......NoCommandLine ......
https://nocommandline.com
        Analytics & GUI for 
App Engine & Datastore Emulator

Thank you for your reply.  I'm using Google App Engine so I cannot manually install anything.  It is my understanding that imagick.so should be an available extension in the GAE environment and all I should need to do is include "extension=imagick.so" in the php.ini file.  This all worked fine with php81.

I have discovered that Image Magick works for some things using php82 like reading PNG meta data, but can no longer ingest SVG graphic tags to create raster graphics, which is our primary use case for Image Magick.

Any other thoughts?

Hi @mrceolla 

Welcome to Google Cloud Community!

It looks like the issue is due to missing libraries in the PHP 8.2 and 8.3 runtimes on Google App Engine (GAE). Even though ImageMagick is available, it needs additional components and relies on librsvg to handle SVG files, which might not be included in these newer runtimes. That’s why PNGs work fine, but SVGs aren’t processing correctly.

Recommendations:

  • Changing the PHP Runtime Environment: Roll back to PHP 8.1, where SVG processing was working, by updating your app.yaml file.

  • As another option: Keep an eye on this Google Cloud App Engine’s issue for PHP 8.2/8.3 or consider using external services for converting SVGs. Alternatively, you could use other tools or services outside of App Engine for handling SVGs.

This might help keep things stable while you plan your next steps.

Hope this helps.

Thank you for your reply and pointing me to that issue tracker for this problem.  I will be keeping an eye on it.

Your first suggestion of using php81 will only be useful for about another month.

"WARNING: PHP 8.1 is no longer supported by the PHP community as of 25 November, 2024. PHP 8.1 will be end of support on 2024-11-25. As of 2024-11-25 you will no longer be able to deploy your App Engine Standard using php81. We recommend you to upgrade to the latest version of PHP as soon as possible."

I know dates and estimates cannot be given, but can you confirm Google is working on resolving this problem?