如果您需要将 CMYK 格式的图像转换为 RGB 并且想要保留颜色信息,这可能会有所帮助
<?php
$image = new Imagick("CMYK_image.jpg"); $profiles = $image->getImageProfiles('*', false); $has_icc_profile = (array_search('icc', $profiles) !== false); if ($has_icc_profile === false)
{
$icc_cmyk = file_get_contents('/path/to/icc/SomeCMYKProfile.icc');
$image->profileImage('icc', $icc_cmyk);
}
$icc_rgb = file_get_contents('/path/to/icc/SomeRGBProfile.icc');
$image->profileImage('icc', $icc_rgb);
$image->setImageColorSpace(Imagick::COLORSPACE_RGB);
$image->writeImage("RGB_image.jpg");
?>
可能还有更好、更优雅的方法来做到这一点,但希望这对您有所帮助。