Sets Imagick time limit.
Depending on configuration, Imagick processing may take time.
Multiple problems exist if PHP times out before ImageMagick completed:
This function, which is expected to be run before heavy image routines, resolves point 1 above by aligning Imagick’s timeout with PHP’s timeout, assuming it is set.
However seems it introduces more problems than it fixes, see https://core.trac.wordpress.org/ticket/58202.
Note:
public static function set_imagick_time_limit() {
_deprecated_function( __METHOD__, '6.3.0' );
if ( ! defined( 'Imagick::RESOURCETYPE_TIME' ) ) {
return null;
}
// Returns PHP_FLOAT_MAX if unset.
$imagick_timeout = Imagick::getResourceLimit( Imagick::RESOURCETYPE_TIME );
// Convert to an integer, keeping in mind that: 0 === (int) PHP_FLOAT_MAX.
$imagick_timeout = $imagick_timeout > PHP_INT_MAX ? PHP_INT_MAX : (int) $imagick_timeout;
$php_timeout = (int) ini_get( 'max_execution_time' );
if ( $php_timeout > 1 && $php_timeout < $imagick_timeout ) {
$limit = (float) 0.8 * $php_timeout;
Imagick::setResourceLimit( Imagick::RESOURCETYPE_TIME, $limit );
return $limit;
}
}
© 2003–2024 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wp_image_editor_imagick/set_imagick_time_limit