首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不会添加ICC颜色配置文件

不会添加ICC颜色配置文件
EN

Stack Overflow用户
提问于 2017-11-21 13:35:59
回答 1查看 2.2K关注 0票数 1

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

代码语言:javascript
复制
$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));

结果:

代码语言:javascript
复制
Array
(
    [0] => 8bim
    [1] => icc
    [2] => xmp
)
Array
(
)

如果我将参数icc更改为任何其他字符串,则它将出现在输出中,但文件大小不会改变(不确定是否会改变)。

代码语言:javascript
复制
$im->profileImage('testWhatever', file_get_contents('myprofile.icc'));

这在第二个testWhatever输出中显示了print_r()

问题可能是什么,我如何调试呢?我几乎看过这里所有关于这个话题的帖子,我很高兴提供更多的信息。

调试说明,希望这里有一些有用的内容:

  • 版本: ImageMagick 7.0.7-11 Q16 i686 2017-11-12
  • PHP版本5.6.4
  • Tiff文件是CMYK。

convert -list configure输出

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-25 01:51:23

多亏了profileImage手册页面上的一条评论,我才弄明白了这一点:

http://php.net/manual/en/imagick.profileimage.php

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

如果profileImage()似乎什么也不做--在CMYK > RGB转换期间,“倒置颜色”就是一个标志--检查ImageMagick是否有lcms委托可用。 从命令提示符: convert -list configure | grep DELEGATES 如果您没有在列表中看到lcms,那么Imagick就不会进行任何颜色配置文件转换,也不会对此发出任何警告。在这种情况下,安装小CMS库( http://www.littlecms.com/ )并重新编译ImageMagick。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47414462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档