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) ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |