Imagick
在线手册:中文 英文
PHP手册

Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImageAdds or removes a profile from an image

说明

bool Imagick::profileImage ( string $name , string $profile )

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

参数

name

profile

返回值

成功时返回 TRUE .

错误/异常

错误时抛出 ImagickException .


Imagick
在线手册:中文 英文
PHP手册
PHP手册 - N: Adds or removes a profile from an image

用户评论:

gavin at softyolk dot com (12-Jul-2009 12:28)

Thanks for this very valuable information.
For a further push in the correct direction please
consider that you have to download the profiles,

and your most likely sources are:

http://www.color.org/srgbprofiles.xalter

and

http://www.adobe.com/support/downloads/product.jsp?product=62&platform=Windows

Note that the profiles are free, but you must install them
to make them available on you host system.

Eero Niemi (eero at eero dot info) (29-Apr-2008 03:01)

If you need to convert images that are on CMYK format into RGB and want to preserve colour information, this may be helpful:

<?php
$image
= new Imagick("CMYK_image.jpg"); // load image
$profiles = $image->getImageProfiles('*', false); // get profiles
$has_icc_profile = (array_search('icc', $profiles) !== false); // we're interested if ICC profile(s) exist

if ($has_icc_profile === false)
{
 
// image does not have CMYK ICC profile, we add one
 
$icc_cmyk = file_get_contents('/path/to/icc/SomeCMYKProfile.icc');
 
$image->profileImage('icc', $icc_cmyk);
}

// Then we need to add RGB profile
$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");

?>

There may be better and more elegant ways to do this, but hope this helped.