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.
Imagick::profileImage
(PECL imagick 2.0.0)
Imagick::profileImage — Ajoute ou retire un profil d'une image
Description
bool Imagick::profileImage
( string $name
, string $profile
)
Avertissement
Cette fonction n'est pas documentée et seule la liste des arguments est disponible.
Ajoute ou retire un profil ICC, IPTC ou générique d'une image. Si le profil est NULL il est retiré de l'image, et sinon, ajouté. Utilisez le nom de '*' et un profil NULL pour retirer tous les profils d'une image.
Liste de paramètres
- name
-
- profile
-
Valeurs de retour
Returns TRUE on success.
Erreurs / Exceptions
Lance une exception ImagickException si une erreur survient.
Imagick::profileImage
gavin at softyolk dot com
12-Jul-2009 11:28
12-Jul-2009 11:28
Eero Niemi (eero at eero dot info)
29-Apr-2008 02:01
29-Apr-2008 02: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.
