pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

PHP基于imagick擴展實現合成圖片的兩種方法【附imagick擴展下載】

這篇文章主要介紹了PHP基于imagick擴展實現合成圖片的兩種方法,結合實例形式分析了php使用imagick擴展進行圖片合并的具體操作方法與相關實現技巧,并附帶imagick擴展下載地址與配置方法

本文實例講述了PHP基于imagick擴展實現合成圖片的兩種方法。分享給大家供大家參考,具體如下:

方法一:compositeimages

/**
* function: 合成圖片
* @param string   $output_url 圖片保存路徑
* @param string   $img_type  圖片保存類型
* @param integral  $line_num  每行顯示圖片數量
* @param array    $logo_info 每張待合成圖片的信息(要求所有尺寸統一)
* @param array    $img_list 待合成的圖片絕對路徑
*
* @return void
*/
public function generate($output_url, $img_type, $line_num, $logo_info, $img_list=array()) {
    //計算圖片有多少行
    $lines = ceil(count($img_list)/$line_num);
    $bg_width = ($logo_info['width'] + $logo_info['line_width']) * $line_num;
    $bg_height = ($logo_info['height'] + $logo_info['line_height']) * $lines;
    //構建畫布
    $canvas = new Imagick();
    $canvas->newimage($bg_width, $bg_height, 'white');
    $canvas->setimageformat($img_type);
    $i = $j = 0;
    foreach ($img_list as $item) {
      $im = new Imagick($item);
      $x = $logo_info['line_width']*2 + $i * $logo_info['width'];
      $y = $logo_info['line_height']*2 + $j * $logo_info['height'];
      // $canvas->compositeimage($im -> getimage(), Imagick::COMPOSITE_OVER, $x, $y);
      $canvas -> compositeimage($im, $im->getImageCompose(), $x, $y);
      if (($i + 1) % $line_num === 0) {
        $i = 0;
        $j++;
      } else {
        $i++;
      }
      // unset($im);
      $im -> destroy();
    }
    $canvas->writeimage($output_url);
    //銷毀對象
    $canvas -> destroy();
}

方法二:combineimages

/**
* function: 合成圖片
* @param string   $output_url 圖片保存路徑
* @param string   $img_type  圖片保存類型
* @param integral  $line_num  每行顯示圖片數量
* @param array    $logo_info 每張待合成圖片的信息(要求所有尺寸統一)
* @param array    $img_list 待合成的圖片絕對路徑
*
* @return void
*/
public function generate($output_url, $img_type, $line_num, $logo_info, $img_list=array()) {
    //計算圖片有多少行
    $lines = ceil(count($img_list)/$line_num);
    $bg_width = ($logo_info['width'] + $logo_info['line_width']) * $line_num;
    $bg_height = ($logo_info['height'] + $logo_info['line_height']) * $lines;
    //構建畫布
    $canvas = null;
    $canvas = new Imagick();
    $canvas -> newimage($bg_width, $bg_height, 'white');
    $i = $j = 0;
    foreach ($img_list as $item) {
      $im = null;
      $im = new Imagick($item);
      // $canvas -> readImage($item);
      $canvas -> addimage($im);
      $im -> clear();
      $im -> destroy();
    }
    // $canvas -> flattenImages();
    $canvas -> combineImages( Imagick::CHANNEL_ALL );
    $canvas -> writeimage($output_url);
    //銷毀對象
    $canvas -> clear();
    $canvas -> destroy();
}

個人認為方法二效率更高

附:windows下面php5.2.17和php5.3.18和php5.4.8各個版本的imagick組件下載

1、PHP5.2.17我安裝成功了,用的星外PHP5.2.17直接安裝程序,下載imagick版本如下:

點擊此處本站下載

已經包含imagemagick不需要安裝任何東西,直接把php_imagick_st-Q16.dll復制到c:\php\ext目錄
然后給php.ini擴展里面增加:extension=php_imagick_st-Q16.dll 最簡單和綠色的方法
ps:還有諸如php_imagick_st-Q8.dll(8色),php_imagick_dyn-Q16.dll(需要安裝imagemagick)就完全沒必要管他們了

PHP5.2.17本站下載地址:

32位:http://www.jb51.net/softs/26087.html

64位:http://www.jb51.net/softs/479475.html

2、PHP5.3.18 必須安裝 imagemagick 已經沒有可用的單文件dll了

1)官方下載地址:

http://www.imagemagick.org/download/binaries/ImageMagick-6.8.0-4-Q16-windows-dll.exe

2)根據你的php安裝模式下載 php_imagick

線程安全:

點擊此處本站下載

復制到c:\php\ext目錄,增加擴展例如:extension=php_imagick_nts.dll

3、PHP5.4.8  必須安裝 imagemagick 已經沒有可用的單文件dll了

1)官方下載地址:

http://www.imagemagick.org/download/binaries/ImageMagick-6.8.0-4-Q16-windows-dll.exe

2)根據你的PHP安裝模式下載 php_imagick

無線程安全:

點擊此處本站下載

復制到c:\php\ext目錄,增加擴展例如:extension=php_imagick.dll

以上安裝本人都測試過,安裝了重啟iis或Apache服務器,然后查看phpinfo看看有沒有 imagick 如果沒有的話,請檢查權限或者重新做一次。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP定義字符串的四種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
下面小編就為大家分享一篇php 替換文章中的圖片路徑,下載圖片到本地服務器的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP給源代碼加密的幾種方法匯總(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP類的反射來實現依賴注入過程以及相關知識點分享,對此有興趣的朋友跟著小編學習下吧。
php遍歷一個文件夾內的所有文件和文件夾,并刪除所有文件夾和子文件夾下的所有文件的代碼,通過遞歸方式實現達到清空一個目錄的效果。本文給大家分享實例代碼,需要的朋友參考
主站蜘蛛池模板: 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 1000帧高速摄像机|工业高速相机厂家|科天健光电技术 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 上海新光明泵业制造有限公司-电动隔膜泵,气动隔膜泵,卧式|立式离心泵厂家 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | 模型公司_模型制作_沙盘模型报价-中国模型网 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 手板_手板模型制作_cnc手板加工厂-东莞天泓 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 稳尚教育加盟-打造高考志愿填报平台_新高考志愿填报加盟_学业生涯规划加盟 | 领先的大模型技术与应用公司-中关村科金 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 20年条刷老厂-条刷-抛光-工业毛刷辊-惠众毛刷 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 许昌奥仕达自动化设备有限公司| 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 渗透仪-直剪仪-三轴仪|苏州昱创百科 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 三价铬_环保铬_环保电镀_东莞共盈新材料贸易有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 商用绞肉机-熟肉切片机-冻肉切丁机-猪肉开条机 - 广州市正盈机械设备有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 上海佳武自动化科技有限公司| 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 |