WP_Image_Editor_Imagick::test( array $args = array() )
Checks to see if current environment supports Imagick.
Description
We require Imagick 2.2.0 or greater, based on whether the queryFormats() method can be called statically.
Parameters
- $args
-
(Optional)
Default value: array()
Return
(bool)
Source
File: wp-includes/class-wp-image-editor-imagick.php
public static function test( $args = array() ) {
// First, test Imagick's extension and classes.
if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick', false ) || ! class_exists( 'ImagickPixel', false ) )
return false;
if ( version_compare( phpversion( 'imagick' ), '2.2.0', '<' ) )
return false;
$required_methods = array(
'clear',
'destroy',
'valid',
'getimage',
'writeimage',
'getimageblob',
'getimagegeometry',
'getimageformat',
'setimageformat',
'setimagecompression',
'setimagecompressionquality',
'setimagepage',
'setoption',
'scaleimage',
'cropimage',
'rotateimage',
'flipimage',
'flopimage',
'readimage',
);
// Now, test for deep requirements within Imagick.
if ( ! defined( 'imagick::COMPRESSION_JPEG' ) )
return false;
$class_methods = array_map( 'strtolower', get_class_methods( 'Imagick' ) );
if ( array_diff( $required_methods, $class_methods ) ) {
return false;
}
// HHVM Imagick does not support loading from URL, so fail to allow fallback to GD.
if ( defined( 'HHVM_VERSION' ) && isset( $args['path'] ) && preg_match( '|^https?://|', $args['path'] ) ) {
return false;
}
return true;
}
Changelog
Version | Description |
---|---|
3.5.0 | Introduced. |