PHP7.1+Imagick2.0 實現(xiàn)PSD文件轉PNG圖片

一、關于Imagick庫

鏈接一枚 : imagick官網(wǎng)

wizard.jpg

ImageMagick是一套功能強大矛紫、穩(wěn)定而且免費的工具集和開發(fā)包乌庶。與php官方GD庫相比功能更加豐富屉栓,支持圖片格式也更加多妖泄。

官網(wǎng)功能介紹
  • Use ImageMagick? to create, edit, compose, or convert bitmap images. It can read and write images in a variety of (over 200) including PNG, JPEG, JPEG-2000, GIF, TIFF, WebP, Postscript, PDF, and SVG. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
(附中文)
  • 使用ImageMagick?可以用來創(chuàng)建平挑,編輯骗灶,合成或轉換位圖圖像惨恭。 它可以讀取和寫入各種格式的圖像(超過200個),包括PNG耙旦,JPEG脱羡,JPEG-2000,GIF免都,TIFF锉罐,DPX,EXR绕娘,WebP脓规,Postscript,PDF和SVG险领。 可以使用ImageMagick來調(diào)整侨舆,翻轉秒紧,鏡像,旋轉挨下,扭曲熔恢,剪切和轉換圖像,調(diào)整圖像顏色复颈,應用各種特殊效果绩聘,或繪制文本,線條耗啦,多邊形凿菩,橢圓和貝塞爾曲線。

二帜讲、業(yè)務需求介紹

  • 惠學寶項目中我們的核心是圍繞一個H5編輯器進行的衅谷,我們?yōu)橛脩籼峁└鞣N豐富的H5宣傳方案。通常由公司設計師設計出原始視覺方案(psd文件)似将,再將各個圖層切出圖片(png)后上傳到編輯器進行方案動畫等效果設計,最終編輯器生成方案惠學寶手機端获黔。此次需求即為省去手動轉換的步驟,提高編輯效率在验。直接上傳PSD文件玷氏,自動分析圖層,轉換為png圖片腋舌,而后可以直接編輯圖層圖片盏触。

三、服務器環(huán)境搭建(基于ubuntu16.4)

  • 安裝imagick 庫
    sudo apt-get install imagemagick
  • 安裝php imagick 擴展
    sudo apt install php-imagick
  • 修改php.ini
    添加 extension=imagick.so
  • 重啟php7.1-fpm
    service php7.1-fpm restart
  • 最后查看phpinfo中擴展是否安裝块饺,當然對于php fpm的優(yōu)化 這個不做介紹

四赞辩、代碼實現(xiàn)(php7.1)

        $image = new \Imagick(ROOT_PATH.'public/uploads/'.$fileName);   //實例  化imagick 傳入?yún)?shù)為文件路徑
        $num = $image->getNumberImages();  // 獲取圖層數(shù)
        $index = $image->getNumberImages()+1;
        $code = '';
        for($i=1;$i<6;$i++){
            $code.=rand(0,9);
        }
        //批量壓縮及保存圖層為png文件
        for ($i = 1; $i < $num; ++$i) {
            $image->setIteratorIndex($i);  //選擇圖層
            $pagedata = $image->getImagePage();  
            $w = $image->getImageWidth()/4;   //圖片寬
            $h = $image->getImageHeight()/4;  //圖片高
            $image->setImageFormat('png');    //圖片格式

            $name = $i.time().$code. '.png';
            
            //壓縮圖片
            $image->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);  //圖片壓縮
            $quality = $image->getImageCompressionQuality() * 0.60;    //壓縮質量 0.6
            if ($quality == 0) {
                $quality = 60;
            }
            $image->setImageCompressionQuality($quality);
            $image->stripImage();
            
            
            $image->writeImage(ROOT_PATH.'public/uploads/'.$name); //導出所有圖層到單獨的png文件
            
            $pagedata['z-index'] = $index;
            $pagedata['index'] = $index;
            $pagedata['url'] = $url.$name;
            $allinfo[] =$pagedata;
            $index--;
        }

五、效果演示

image.png

image.png

歡迎交流指教授艰!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辨嗽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子淮腾,更是在濱河造成了極大的恐慌糟需,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谷朝,死亡現(xiàn)場離奇詭異篮灼,居然都是意外死亡,警方通過查閱死者的電腦和手機徘禁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來髓堪,“玉大人送朱,你說我怎么就攤上這事娘荡。” “怎么了驶沼?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵炮沐,是天一觀的道長。 經(jīng)常有香客問我回怜,道長大年,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任玉雾,我火速辦了婚禮翔试,結果婚禮上,老公的妹妹穿的比我還像新娘复旬。我一直安慰自己垦缅,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布驹碍。 她就那樣靜靜地躺著壁涎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪志秃。 梳的紋絲不亂的頭發(fā)上怔球,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音浮还,去河邊找鬼竟坛。 笑死,一個胖子當著我的面吹牛碑定,可吹牛的內(nèi)容都是我干的流码。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼延刘,長吁一口氣:“原來是場噩夢啊……” “哼漫试!你這毒婦竟也來了?” 一聲冷哼從身側響起碘赖,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤驾荣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后普泡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體播掷,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年撼班,在試婚紗的時候發(fā)現(xiàn)自己被綠了歧匈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡砰嘁,死狀恐怖件炉,靈堂內(nèi)的尸體忽然破棺而出勘究,到底是詐尸還是另有隱情,我是刑警寧澤斟冕,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布口糕,位于F島的核電站,受9級特大地震影響磕蛇,放射性物質發(fā)生泄漏景描。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一秀撇、第九天 我趴在偏房一處隱蔽的房頂上張望超棺。 院中可真熱鬧,春花似錦捌袜、人聲如沸说搅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弄唧。三九已至,卻和暖如春霍衫,著一層夾襖步出監(jiān)牢的瞬間候引,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工敦跌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澄干,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓柠傍,卻偏偏與公主長得像麸俘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子惧笛,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345