protected function strip_meta()
{
if (!is_callable(array($this->image, 'getImageProfiles'))) {
/* translators: %s: ImageMagick method name */
return new WP_Error('image_strip_meta_error', sprintf(__('%s is required to strip image meta.'), '<code>Imagick::getImageProfiles()</code>'));
}
if (!is_callable(array($this->image, 'removeImageProfile'))) {
/* translators: %s: ImageMagick method name */
return new WP_Error('image_strip_meta_error', sprintf(__('%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)) {
$this->image->removeImageProfile($key);
}
}
} catch (Exception $e) {
return new WP_Error('image_strip_meta_error', $e->getMessage());
}
return true;
}