国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-05 00:01:06
字體:
供稿:網(wǎng)友

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

方法一:compositeimages

/*** function: 合成圖片* @param string   $output_url 圖片保存路徑* @param string   $img_type  圖片保存類型* @param integral  $line_num  每行顯示圖片數(shù)量* @param array    $logo_info 每張待合成圖片的信息(要求所有尺寸統(tǒng)一)* @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;    //構(gòu)建畫布    $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  每行顯示圖片數(shù)量* @param array    $logo_info 每張待合成圖片的信息(要求所有尺寸統(tǒng)一)* @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;    //構(gòu)建畫布    $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版本如下:

點擊此處本站下載

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

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

1)官方下載地址:

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

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

線程安全:

點擊此處本站下載

復(fù)制到c:/php/ext目錄,增加擴展例如:extension=php_imagick_nts.dll

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

1)官方下載地址:

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

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

無線程安全:

點擊此處本站下載

復(fù)制到c:/php/ext目錄,增加擴展例如:extension=php_imagick.dll

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

希望本文所述對大家PHP程序設(shè)計有所幫助。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 讷河市| 大丰市| 永川市| 南召县| 丘北县| 宁城县| 庆安县| 东光县| 旌德县| 六盘水市| 德惠市| 前郭尔| 阜城县| 卢龙县| 伊通| 内丘县| 尼木县| 揭东县| 岱山县| 基隆市| 江口县| 札达县| 疏附县| 兴仁县| 县级市| 尼勒克县| 马山县| 娄底市| 秭归县| 讷河市| 华坪县| 漯河市| 崇仁县| 阳春市| 澳门| 青龙| 闽清县| 抚顺县| 林芝县| 长沙市| 宜州市|