如何识别图像是否具有嵌入的 sRGB icc 配置文件?

How to identify if an image have an embed sRGB icc profile?

我想从我的图像中删除他们的 sRGB 配置文件(如果有的话)。我不知道如何识别图像具有 sRGB 配置文件的问题。有什么好的方法吗?

在 Imagemagick 中,使用

convert image.suffix -format "%[profiles]\n" info:

convert image.suffix -format "%[profile:icc]\n" info:

除非你的 Imagemagick 版本太旧。

例如:

convert logo.jpg  -format "%[profiles]\n" info:
icc


convert logo.jpg  -format "%[profile:icc]\n" info:
sRGB built-in

请不要接受作为答案,因为 Fred 已经为您指明了方向,但这里是您可以使用 PHP Imagick 获取配置文件的方法:

$img = new Imagick('image.jpg');
$img->setOption('format','%[profiles]');
$img->setImageFilename('info:');

$fd = fopen('php://memory','rwb');
$img->writeImageFile($fd);
fseek($fd, 0);
$info = fread($fd, 1024);
fclose($fd);
var_dump($info);

示例输出

string(18) "app12,exif,icc,xmp"