PHPのお勉強!

PHP TOP

Imagick::profileImage

(PECL imagick 2, PECL imagick 3)

Imagick::profileImage画像のプロファイルを追加あるいは削除する

説明

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

ICC、IPTC あるいは汎用のプロファイルを画像に追加あるいは削除します。 profile が NULL の場合は画像からプロファイルを削除し、 それ以外の場合は追加します。 name に '*'、profile に NULL を指定すると、画像からすべてのプロパティを削除します。

パラメータ

name

profile

戻り値

成功した場合に true を返します。

エラー / 例外

エラー時に ImagickException をスローします。

add a note

User Contributed Notes 3 notes

up
7
dadima, gmail
10 years ago
If profileImage() seems to be doing nothing — and "inverted colors" during a CMYK > RGB conversion is a sign of this — check that ImageMagick has the lcms delegate available.
From a command prompt:
convert -list configure | grep DELEGATES

If you don't see lcms in the list then Imagick won't do any color profile conversions, and won't give any warnings about this. In that case, install the Little CMS library ( http://www.littlecms.com/ ) and recompile ImageMagick.
up
8
Eero Niemi (eero at eero dot info)
16 years ago
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.
up
0
gavin at softyolk dot com
15 years ago
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.