PHP Imagick赢得';t添加ICC颜色配置文件

PHP Imagick赢得';t添加ICC颜色配置文件,php,image,imagick,Php,Image,Imagick,我正在做一个项目,在这个项目中,我不得不学习一些颜色配置文件,但我仍然是个新手。此代码似乎没有添加icc配置文件: $im = new Imagick; $im->readImage('input.tif'); print_r($im->getImageProfiles('*', false)); $im->stripImage(); $im->profileImage('icc', file_get_contents('myprofile.icc')); prin

我正在做一个项目,在这个项目中,我不得不学习一些颜色配置文件,但我仍然是个新手。此代码似乎没有添加icc配置文件:

$im = new Imagick;
$im->readImage('input.tif');

print_r($im->getImageProfiles('*', false));

$im->stripImage();
$im->profileImage('icc', file_get_contents('myprofile.icc'));

print_r($im->getImageProfiles('*', false));
结果:

Array
(
    [0] => 8bim
    [1] => icc
    [2] => xmp
)
Array
(
)
如果我将参数
icc
更改为任何其他字符串,它将显示在输出中,但文件大小不会更改(不确定是否会更改)

这将在第二个
print\r()
输出中显示
testwhere

问题可能是什么?我如何调试它?我已经阅读了这里几乎每一篇关于这个主题的文章,我很乐意提供更多的信息

调试说明,希望这里有一些有用的东西:
  • 版本:ImageMagick 7.0.7-11 Q16 i686 2017-11-12
  • PHP版本5.6.4
  • Tiff文件是CMYK
convert的输出-列表配置

Path: /usr/local/lib/ImageMagick-7.0.7//config-Q16HDRI/configure.xml

Name           Value
-------------------------------------------------------------------------------
CC             gcc -std=gnu99 -std=gnu99
CFLAGS         -I/usr/include/libxml2   -I/usr/include/libpng12    -pthread -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I/usr/include/freetype2        -fopenmp -g -O2 -Wall -mtune=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
CODER_PATH     /usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/coders
CONFIGURE      ./configure
CONFIGURE_PATH /usr/local/etc/ImageMagick-7/
COPYRIGHT      Copyright (C) 1999-2017 ImageMagick Studio LLC
CPPFLAGS       -I/usr/local/include/ImageMagick-7
CXX            g++
CXXFLAGS       -g -O2 -pthread
DEFS           -DHAVE_CONFIG_H
DELEGATES      bzlib mpeg fontconfig freetype jng jpeg pango png ps tiff x xml zlib
DISTCHECK_CONFIG_FLAGS  --disable-deprecated  --with-quantum-depth=16  --with-jemalloc=no  --with-umem=no  --with-autotrace=no  --with-gslib=no  --with-fontpath=  --with-rsvg=no  --with-perl=no
DOCUMENTATION_PATH /usr/local/share/doc/ImageMagick-7
EXEC-PREFIX    /usr/local
EXECUTABLE_PATH /usr/local/bin
FEATURES       DPC HDRI Cipher OpenMP
FILTER_PATH    /usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/filters
GIT_REVISION   12832
HOST           i686-pc-linux-gnu
INCLUDE_PATH   /usr/local/include/ImageMagick-7
LDFLAGS        -L/usr/local/lib
LIB_VERSION    0x707
LIB_VERSION_NUMBER 7,0,7,11
LIBRARY_PATH   /usr/local/lib/ImageMagick-7.0.7
LIBS              -ltiff -lfreetype    -ljpeg   -lpng12        -lfontconfig      -lXext -lXt   -lSM -lICE -lX11   -lbz2   -pthread -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0     -lxml2    -lz    -lm -lgomp
NAME           ImageMagick
PCFLAGS        -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
PREFIX         /usr/local
QuantumDepth   16
RELEASE_DATE   2017-11-21
SHARE_PATH     /usr/local/share/ImageMagick-7
SHAREARCH_PATH /usr/local/lib/ImageMagick-7.0.7/config-Q16HDRI
TARGET_CPU     i686
TARGET_OS      linux-gnu
TARGET_VENDOR  pc
VERSION        7.0.7
WEBSITE        http://www.imagemagick.org

Path: [built-in]

Name           Value
-------------------------------------------------------------------------------
FEATURES       OpenMP
NAME           ImageMagick
QuantumDepth   16

多亏了
profileImage
manual页面上的一条评论:

解决方案:安装LCMS委托并重新编译ImageMagick,您可能还需要删除并重新安装PHP扩展

如果
profileImage()
似乎什么也不做,并且CMYK>RGB转换期间的“反转颜色”就是一个迹象,请检查ImageMagick是否有lcms代理可用

从命令提示符:

convert-列表配置| grep委托

如果在列表中看不到LCM,则Imagick不会使用任何颜色 配置文件转换,并且不会对此给出任何警告。因为 安装小CMS库()和 重新编译ImageMagick


这听起来像是一个愚蠢的问题,但有错误报告吗?没有,当添加配置文件时,调用返回
true
。我必须在这里选择我的(非常旧的)图形艺术体验lol-但是TIFF文件实际上是8位且包含通道吗?文件的配置文件是什么?如果文件的灰度,或RGB或CMYK,那么可能在这里起作用。你能发布myprofile.icc包含的内容吗?什么是
var\u转储($im)显示?还有MAC/Windows?其他的?可能是TIFF的版本。我们怀疑这可能与手册页上的第一条评论有关:我暂时不谈这个。“如果profileImage()似乎什么都不做-和”反转颜色“在CMYK>RGB转换期间,这是一个标志-检查ImageMagick是否有lcms委托可用。如果您在列表中没有看到LCM,则Imagick不会执行任何颜色配置文件转换,也不会给出任何有关此的警告。在这种情况下,安装小CMS库并重新编译ImageMagick。“啊。。。所以我在第二次评论中所说的话可能有一定道理,对吗?我也有同样的问题。它显示lmcs在那里,但profileImage仍然不会设置颜色配置文件。我能把CMYK转换成RGB,但颜色有点不协调。似乎没有太多关于这方面的文档,你在哪里找到了@AdamCollingburn?我也遇到了类似的问题,请看,我们的生产服务器没有应用配置文件,但我的本地linux服务器是。@Neek是的,我把它整理好了-这都是LCMS+必须确保在转换之前添加了配置文件。但是,如果您发现prod是问题所在,则需要卸载imagick和imagemagick,然后再次构建/安装imagemagick,然后使用pecl安装imagick。我知道,这很痛苦,但请咬紧牙关,因为它解决了我的很多问题。。我认为我很幸运,LCM似乎已经包含在这些天的打包版本的代表中(我记得几年前的情况并非如此)。我似乎已经在ImageMagick本身中发现了一种回归,但我不是这方面的专家,请看。。我可以在命令行上使用旧版本让它“工作”,但我记得PHP绑定从未为我工作过。
Path: /usr/local/lib/ImageMagick-7.0.7//config-Q16HDRI/configure.xml

Name           Value
-------------------------------------------------------------------------------
CC             gcc -std=gnu99 -std=gnu99
CFLAGS         -I/usr/include/libxml2   -I/usr/include/libpng12    -pthread -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I/usr/include/freetype2        -fopenmp -g -O2 -Wall -mtune=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
CODER_PATH     /usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/coders
CONFIGURE      ./configure
CONFIGURE_PATH /usr/local/etc/ImageMagick-7/
COPYRIGHT      Copyright (C) 1999-2017 ImageMagick Studio LLC
CPPFLAGS       -I/usr/local/include/ImageMagick-7
CXX            g++
CXXFLAGS       -g -O2 -pthread
DEFS           -DHAVE_CONFIG_H
DELEGATES      bzlib mpeg fontconfig freetype jng jpeg pango png ps tiff x xml zlib
DISTCHECK_CONFIG_FLAGS  --disable-deprecated  --with-quantum-depth=16  --with-jemalloc=no  --with-umem=no  --with-autotrace=no  --with-gslib=no  --with-fontpath=  --with-rsvg=no  --with-perl=no
DOCUMENTATION_PATH /usr/local/share/doc/ImageMagick-7
EXEC-PREFIX    /usr/local
EXECUTABLE_PATH /usr/local/bin
FEATURES       DPC HDRI Cipher OpenMP
FILTER_PATH    /usr/local/lib/ImageMagick-7.0.7/modules-Q16HDRI/filters
GIT_REVISION   12832
HOST           i686-pc-linux-gnu
INCLUDE_PATH   /usr/local/include/ImageMagick-7
LDFLAGS        -L/usr/local/lib
LIB_VERSION    0x707
LIB_VERSION_NUMBER 7,0,7,11
LIBRARY_PATH   /usr/local/lib/ImageMagick-7.0.7
LIBS              -ltiff -lfreetype    -ljpeg   -lpng12        -lfontconfig      -lXext -lXt   -lSM -lICE -lX11   -lbz2   -pthread -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0     -lxml2    -lz    -lm -lgomp
NAME           ImageMagick
PCFLAGS        -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
PREFIX         /usr/local
QuantumDepth   16
RELEASE_DATE   2017-11-21
SHARE_PATH     /usr/local/share/ImageMagick-7
SHAREARCH_PATH /usr/local/lib/ImageMagick-7.0.7/config-Q16HDRI
TARGET_CPU     i686
TARGET_OS      linux-gnu
TARGET_VENDOR  pc
VERSION        7.0.7
WEBSITE        http://www.imagemagick.org

Path: [built-in]

Name           Value
-------------------------------------------------------------------------------
FEATURES       OpenMP
NAME           ImageMagick
QuantumDepth   16