У меня такое трудное время, чтобы конвертировать изображения из Adobe RGB в профиль sRGB, теперь я начинаю думать, может быть, я не могу назначить или преобразовать цветовые профили вообще на моем хост.Imagick: невозможно назначить или преобразовать цветовой профиль
ImageMagick 6.8.9-6 Q16 x86_64 2014-08-15
class_exists ("Imagick") = True
Здесь я пытаюсь назначить профиль на изображение, созданное с IM, даже то, что не работает .. Что здесь не так?
try {
$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('jpg');
$image->setImageCompression(Imagick::COMPRESSION_JPEG);
$image->setImageCompressionQuality(60);
// TRY 1
// $image->setImageColorspace(Imagick::COLORSPACE_SRGB);
// TRY 2
$profile_path = "sRGB_IEC61966-2-1_black_scaled.icc";
$profile = file_get_contents($profile_path);
$image->profileImage("icc", $profile);
$image->setImageColorspace(Imagick::COLORSPACE_SRGB);
} catch(Exception $e) {
echo 'Exception caught: ', $e->getMessage(), "\n";
}
header("Content-Type: image/jpg");
echo $image->getImageBlob();
EDIT Вот что я пытался с существующим изображением с цветовым пространством Adobe RGB:
try {
$profile_path = "sRGB_IEC61966-2-1_black_scaled.icc";
$image = new Imagick();
$image->readImage("original-small.jpg");
// TRY 1 > keeps the same Adobe RGB profile
// $image->transformImageColorspace(Imagick::COLORSPACE_SRGB);
// TRY 2 > strips all EXIF data + profile but does NOT assign new profile
// $image->stripImage();
// $image->transformImageColorspace(Imagick::COLORSPACE_SRGB);
// TRY 3 > keeps the same Adobe RGB profile
// $profile = file_get_contents($profile_path);
// $image->profileImage("icc", $profile);
// $image->transformImageColorspace(Imagick::COLORSPACE_SRGB);
// TRY 4 > strips all EXIF data + profile but does NOT assign new profile
// $image->stripImage();
// $profile = file_get_contents($profile_path);
// $image->profileImage("icc", $profile);
// $image->transformImageColorspace(Imagick::COLORSPACE_SRGB);
} catch(Exception $e) {
echo 'Exception caught: ', $e->getMessage(), "\n";
}
header("Content-Type: image/jpg");
echo $image->getImageBlob();
Нет, я попытался это уже с существующим изображением с Adobe RGB цветового пространства, никакого эффекта, он сохраняет тот же профиль. '$ image = new Imagick(); $ Image-> readImage ("оригинал-small.jpg"); $ image-> transformimagecolorspace (Imagick :: COLORSPACE_SRGB); ' – FFish
Geeee, я не верю! Добавление трейлинг-коса перед фронтом сделало трюк! '$ image-> transformImageColorspace (\ Imagick :: COLORSPACE_SRGB);' Я почти дал это .. спасибо огромное! Любая идея, почему мне нужна косая черта? – FFish
НЕТ, Держись .. Нет, я попробовал с изображением с sRGB. Без изображения Adobe RGB нет конверсии. Думаю, я отказываюсь от этого ..: - | Также никакой помощи от моего хозяина. – FFish