用PHP将CMYK格式的JPG文件转为RGB格式
来源:互联网 发布:高性能mysql 第3版 编辑:程序博客网 时间:2024/05/17 01:20
imagick是一个PHP的扩展,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API.
ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等,详细的解释见ImageMagick的官方网站http://www.imagemagick.org/,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。
1. 下载安装ImageMagick
后来安装ImageMagick6.8.6总是编译失败:magick/.libs/libMagickCore-6.Q16.so: undefined reference to `jpeg_default_qtables'所以不得不重新编译libjpeg最新版本,下载jpegsrc.v9.tar.gz
曾经在一个服务器上,libdir参数必须有,否则错误仍在。我猜,如果不用libdir参数,而是在make install后执行 sudo ldconfig /usr/lib64(imagemagick官方说明)是否起到同样效果.不懂C语言,悲剧啊!
3. 下载安装Imagick
注:安装该扩展不要求安装ImageMagick
从http://pecl.php.net/package/imagick找到imagick的最新的版本
make install执行结果显示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /usr/local/php/include/php/
if ($im->getImageColorspace() == Imagick::COLORSPACE_CMYK) {
$i = new Imagick($filename);
$profiles = $i->getImageProfiles('*', false);
$has_icc_profile = (array_search('icc', $profiles) !== false);
if ($has_icc_profile === false) {
$icc_cmyk = file_get_contents('USWebUncoated.icc');
$i->profileImage('icc', $icc_cmyk);
unset($icc_cmyk);
}
$icc_rgb = file_get_contents('AdobeRGB1998.icc');
$i->profileImage('icc', $icc_rgb);
unset($icc_rgb);
$i->writeImage($filename);
}
ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等,详细的解释见ImageMagick的官方网站http://www.imagemagick.org/,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。
1. 下载安装ImageMagick
- wget ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.6.8-10.tar.gz
- tar -xzvf ImageMagick-6.6.8-10.tar.gz
- ./configure --prefix=/usr/local/imagemagick
- make
- make install
后来安装ImageMagick6.8.6总是编译失败:magick/.libs/libMagickCore-6.Q16.so: undefined reference to `jpeg_default_qtables'所以不得不重新编译libjpeg最新版本,下载jpegsrc.v9.tar.gz
- tar -xzvf jpegsrc.v9.tar.gz
- cd jpeg-9
- ./configure
- make libdir=/usr/lib64
- make libdir=/usr/lib64 install
曾经在一个服务器上,libdir参数必须有,否则错误仍在。我猜,如果不用libdir参数,而是在make install后执行 sudo ldconfig /usr/lib64(imagemagick官方说明)是否起到同样效果.不懂C语言,悲剧啊!
2. 下载安装Imagick
yum install ImageMagick-devel
即可安装ImageMagick-devel。
3. 下载安装Imagick
注:安装该扩展不要求安装ImageMagick
从http://pecl.php.net/package/imagick找到imagick的最新的版本
- wget http://pecl.php.net/get/imagick-3.1.0RC1.tgz
- tar -xzvf imagick-3.1.0RC1
- cd imagick-3.1.0RC1
- phpize
- ./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
- make
- make install
make install执行结果显示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /usr/local/php/include/php/
生成imagick.so到/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/,然后手动配置php.ini使其生效
公司某个项目需要抓取pdf的缩略图,最近有部分缩略图无法在IE浏览器显示,但是能够在谷歌浏览器显示。最后发现无法显示的图片图像色彩为CMKY,而CMKY在IE浏览器是无法显示的。所以需要将图像色彩CMKY转为RGB。
关于ICC 文件 提供地址可以下载:
CMYK: http://www.mattbeals.com/icc/profiles/cmyk/USWebUncoated.icc.zip
RGB:http://www.mattbeals.com/icc/profiles/rgb/AdobeRGB1998.icc.zip
if ($im->getImageColorspace() == Imagick::COLORSPACE_CMYK) {
$i = new Imagick($filename);
$profiles = $i->getImageProfiles('*', false);
$has_icc_profile = (array_search('icc', $profiles) !== false);
if ($has_icc_profile === false) {
$icc_cmyk = file_get_contents('USWebUncoated.icc');
$i->profileImage('icc', $icc_cmyk);
unset($icc_cmyk);
}
$icc_rgb = file_get_contents('AdobeRGB1998.icc');
$i->profileImage('icc', $icc_rgb);
unset($icc_rgb);
$i->writeImage($filename);
}
- 用PHP将CMYK格式的JPG文件转为RGB格式
- 用PHP将CMYK格式的JPG文件转为RGB格式
- 用PHP将CMYK格式的JPG文件转为RGB格式
- 用PHP将CMYK格式的JPG文件转为RGB格式
- 用python将jpg文件转为eps格式
- C#将wbmp格式图片转为jpg的图片
- PHP 将BMP 格式 转换成 jpg
- 将RGB图像数据压缩成jpg格式图片的代码实现
- iOS自写cmyk颜色格式转换成RGB格式
- 用php将任何格式视频转为flv
- 怎么批量的将CAD文件转为pdf格式?
- 使用Java语言将 jpg 格式图片转为 ppm 格式图片
- cmyk图片转为rgb图片
- 在C#中将.bmp转为.jpg格式的函数
- 在C#中将.bmp转为.jpg格式的方法
- 利用Python将WEBVTT格式的视频字幕文件转为SRT格式
- 将GBK格式的文件转为UTF-8格式,避免中文乱码
- JAVA RGB转CMYK 源码(支持格式转换)
- Android ListView反复调用getView和getCount
- lsof 应用实例分享以及Oracle 数据文件删除恢复测试
- C指针原理(20)-C指针基础
- jsp textarea删除一行或者多行(textarea删除某行)
- Unknown column 'conuintoken' in 'field list' 解决办法
- 用PHP将CMYK格式的JPG文件转为RGB格式
- 函数指针
- 按位与、或、异或等运算总结
- Java重载可以有不同的返回类型
- 二维数组--char5
- 周同学东软实训心得:从“学校人”到“企业人”
- 打印android栈中的信息
- storm入门1--storm的安装
- 再多读一篇文章会怎样?