WP_Image_Editor_Imagick::strip_meta(): true|WP_Error

In this article

Strips all image meta except color profiles from an image.

Return

true|WP_Error True if stripping metadata was successful. WP_Error object on error.

Source

protected function strip_meta() {

	if ( ! is_callable( array( $this->image, 'getImageProfiles' ) ) ) {
		return new WP_Error(
			'image_strip_meta_error',
			sprintf(
				/* translators: %s: ImageMagick method name. */
				__( '%s is required to strip image meta.' ),
				'<code>Imagick::getImageProfiles()</code>'
			)
		);
	}

	if ( ! is_callable( array( $this->image, 'removeImageProfile' ) ) ) {
		return new WP_Error(
			'image_strip_meta_error',
			sprintf(
				/* translators: %s: ImageMagick method name. */
				__( '%s is required to strip image meta.' ),
				'<code>Imagick::removeImageProfile()</code>'
			)
		);
	}

	/*
	 * Protect a few profiles from being stripped for the following reasons:
	 *
	 * - icc:  Color profile information
	 * - icm:  Color profile information
	 * - iptc: Copyright data
	 * - exif: Orientation data
	 * - xmp:  Rights usage data
	 */
	$protected_profiles = array(
		'icc',
		'icm',
		'iptc',
		'exif',
		'xmp',
	);

	try {
		// Strip profiles.
		foreach ( $this->image->getImageProfiles( '*', true ) as $key => $value ) {
			if ( ! in_array( $key, $protected_profiles, true ) ) {
				$this->image->removeImageProfile( $key );
			}
		}
	} catch ( Exception $e ) {
		return new WP_Error( 'image_strip_meta_error', $e->getMessage() );
	}

	return true;
}

Changelog

VersionDescription
4.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.