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

Image 如何识别图像是否具有嵌入的sRGB icc配置文件?,image,imagemagick,imagick,color-profile,color-management,Image,Imagemagick,Imagick,Color Profile,Color Management,我想从我的图像中删除他们的sRGB配置文件(如果他们有)。问题是,我不知道如何识别图像是否具有sRGB配置文件。好的方法是什么?在Imagemagick中,使用 convert image.suffix -format "%[profiles]\n" info: 或 除非你的Imagemagick版本很古老 例如: convert logo.jpg -format "%[profiles]\n" info: icc 请不要接受答案,因为Fred已经为您指明了方向,但以下是如何使用PHP

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

在Imagemagick中,使用

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

除非你的Imagemagick版本很古老

例如:

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


请不要接受答案,因为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"

谢谢fmw42:)你知道我如何使用magickWand api实现这一点吗?对不起,我不知道Imagemagick的任何api,只知道命令行。你有没有看过你可能会发布的解决方案,以帮助其他人在未来。
$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"