聲色貼生成圖片總結 Imagick

2014-08-24
都是按之前的程序進行了,但去年8月均可以用Imagick正常生成CMYK的圖片,但今天就是不行。
通過一切測試方法及思路,解決方法以下。php

問題主要出如今: 生成的二維碼是RGB格式,須要轉換爲CMYK,而後在與CMYK的模塊進行圖片合成。測試


第一: 之前生成的二維碼是png格式,位深度爲8。通過分析將生成的二維碼改成jpg格式,位深度爲24.spa

第二:在與模板合成以前,將二維碼轉換爲CMYK格式。而後在與模板合併。orm

 

    private function RGBtoCMYK($source, $save_file, $icc_cmyk, $icc_rgb){
            $img_object = new Imagick($source);
            if ($img_object->getImageColorspace() == 1 OR $img_object->getImageColorspace() == 13) { 
               $profiles = $img_object->getImageProfiles('*', false); 
               $has_icc_profile = (array_search('icc', $profiles) !== false); 
               if ($has_icc_profile === false) { 
                       //$icc_cmyk = file_get_contents('./Public/Img/AdobeRGB1998.icc'); 
                       $img_object->profileImage('icc', $icc_cmyk); 
                       unset($icc_cmyk); 
               } 
               //$icc_rgb = file_get_contents('./Public/Img/USWebUncoated.icc');                             
               $img_object->profileImage('icc', $icc_rgb); 
               unset($icc_rgb);    
            } 
            $image_data = $img_object->getImageGeometry(); 
            $img_object->setImageColorspace(12); 
            $img_object->setImageFormat('jpeg'); 

            $img_object->writeImage($save_file); 
            $img_object->clear(); 
            $img_object->destroy();
            return $save_file;
    }    
相關文章
相關標籤/搜索