WP_Image_Editor_Imagick::update_sizeprotectedWP 3.5.0

Sets or updates current image size.

Method of the class: WP_Image_Editor_Imagick{}

No Hooks.

Returns

true|WP_Error.

Usage

// protected - for code of main (parent) or child class
$result = $this->update_size( $width, $height );
$width(int)
.
Default: null
$height(int)
.
Default: null

Changelog

Since 3.5.0 Introduced.

WP_Image_Editor_Imagick::update_size() code WP 6.8.3

protected function update_size( $width = null, $height = null ) {
	$size = null;
	if ( ! $width || ! $height ) {
		try {
			$size = $this->image->getImageGeometry();
		} catch ( Exception $e ) {
			return new WP_Error( 'invalid_image', __( 'Could not read image size.' ), $this->file );
		}
	}

	if ( ! $width ) {
		$width = $size['width'];
	}

	if ( ! $height ) {
		$height = $size['height'];
	}

	/*
	 * If we still don't have the image size, fall back to `wp_getimagesize`. This ensures AVIF and HEIC images
	 * are properly sized without affecting previous `getImageGeometry` behavior.
	 */
	if ( ( ! $width || ! $height ) && ( 'image/avif' === $this->mime_type || wp_is_heic_image_mime_type( $this->mime_type ) ) ) {
		$size   = wp_getimagesize( $this->file );
		$width  = $size[0];
		$height = $size[1];
	}

	return parent::update_size( $width, $height );
}