php – 使用Imagick将图像从RGB转换为CMYK
发布时间:2020-12-13 17:15:49 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试将RGB图像转换为CMYK,因为它们需要打印. 我正在使用此代码: ?php$filePath = 'rgb.jpg';// First save image as png$image = new Imagick($filePath);$image-setImageCompression(Imagick::COMPRESSION_UNDEFINED);$image-setImageCompressionQua
|
我正在尝试将RGB图像转换为CMYK,因为它们需要打印.
我正在使用此代码: <?php
$filePath = 'rgb.jpg';
// First save image as png
$image = new Imagick($filePath);
$image->setImageCompression(Imagick::COMPRESSION_UNDEFINED);
$image->setImageCompressionQuality(0);
$image->setImageFormat("png");
$filePath = 'rgb.png';
$image->writeImage($filePath);
$image->clear();
$image->destroy();
$image = null;
// Convert colors
$image = new Imagick($filePath);
$image->stripImage();
$image->setImageColorspace(Imagick::COLORSPACE_CMYK);
$image->setImageCompression(Imagick::COMPRESSION_UNDEFINED);
$image->setImageCompressionQuality(0);
$image->setImageFormat("png");
$filePath = 'cmyk.png';
$image->writeImage($filePath);
$image->clear();
$image->destroy();
$image = null;
$fileUrl = 'http://www.product-designer.nl/rgb2cmyk/cmyk.png';
?>
CMYK Image:<br/>
<img src="<?php echo $fileUrl; ?>" width="400" /><br /><br />
<?php
$fileUrl = 'http://www.product-designer.nl/rgb2cmyk/rgb.png';
?>
RGB Image:<br/>
<img src="<?php echo $fileUrl ?>" width="400" />
你可以在http://product-designer.nl/rgb2cmyk上看到结果 有谁知道如何做到这一点? 谢谢 解决方法
看看
here:
<?php
// don't use this (it inverts the image)
// $img->setImageColorspace (imagick::COLORSPACE_RGB);
if ($img->getImageColorspace() == Imagick::COLORSPACE_CMYK) {
$profiles = $img->getImageProfiles('*',false);
// we're only interested if ICC profile(s) exist
$has_icc_profile = (array_search('icc',$profiles) !== false);
// if it doesnt have a CMYK ICC profile,we add one
if ($has_icc_profile === false) {
$icc_cmyk = file_get_contents(dirname(__FILE__).'/USWebUncoated.icc');
$img->profileImage('icc',$icc_cmyk);
unset($icc_cmyk);
}
// then we add an RGB profile
$icc_rgb = file_get_contents(dirname(__FILE__).'/sRGB_v4_ICC_preference.icc');
$img->profileImage('icc',$icc_rgb);
unset($icc_rgb);
}
$img->stripImage (); // this will drop down the size of the image dramatically (removes all profiles)
?>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
