[wp-trac] [WordPress Trac] #39262: Fall back to ImageMagick command line when the pecl imagic is not available on the server

WordPress Trac noreply at wordpress.org
Fri Dec 16 12:45:30 UTC 2016

#39262: Fall back to ImageMagick command line when the pecl imagic is not available
on the server
 Reporter:  Hristo Sg           |       Owner:
     Type:  enhancement         |      Status:  new
 Priority:  normal              |   Milestone:  Awaiting Review
Component:  External Libraries  |     Version:  4.7
 Severity:  normal              |  Resolution:
 Keywords:                      |     Focuses:

Comment (by gitlost):

 Looking at `supports_mime_type()` in the suggested
 `WP_Image_Editor_Imagick_External` class and it explicitly only supporting
 PDFs prompts the question why use ImageMagick at all for the production of
 PDF previews - why not just shell out to GhostScript directly?

 ImageMagick itself is as mentioned just a bridge, shelling out to
 GhostScript, and a klunky bridge at that as I found (#39216) when trying
 to fix issues with PDFs with CMYK color spaces, with as far as I could see
 no way via ImageMagick (due to the PAM intermediate format) to utilize the
 default ICM/ICC profile handling contained in GhostScript.

 In producing PDF previews (see
 admin/includes/image.php#L237), no manipulation is done using the Imagick
 editor that creates the "full" preview jpeg, it's just thrown away and the
 jpeg reopened in a new (Imagick) editor. So it would make sense to me to
 produce the "full" preview using a GhostScript-based editor dedicated to
 that (or indeed a direct conversion function, but that's another story).
 The following patch (only tested on Ubuntu) is a proof of concept of this.

 The shared hosts overload issues mentioned in ticket:6821#comment:33
 shouldn't be affected (and should presumably be lessened) by using
 GhostScript directly given that ImageMagick does it itself. The security
 issues mentioned may still need to be addressed, but should be
 surmountable I'd have thought with a careful enough implementation (no
 doubt more careful than in the attached patch).

Ticket URL: <https://core.trac.wordpress.org/ticket/39262#comment:4>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list