關於CI架構實現遞迴組建檔案路徑並重建圖片的功能介紹

來源:互聯網
上載者:User
這篇文章主要介紹了CI架構實現遞迴組建檔案路徑並重建圖片功能,涉及CodeIgniter架構自訂圖片控制器類實現檔案目錄遞迴以及調用圖片處理擴充類進行圖片產生相關操作技巧,需要的朋友可以參考下

本文執行個體講述了CI架構實現遞迴組建檔案路徑並重建圖片功能。分享給大家供大家參考,具體如下:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');set_time_limit(0);class Img_build extends CI_Controller{  private static $img_path =  'upload_old/';  private static $new_path =  'upload/';  function __construct()  {      parent::__construct();  }  /**   * 擷取需要讀取的路徑的資訊   * $map = array (   *         '路徑名' => array (檔案1, 檔案2, 檔案3)   *     )   */  public function index()  {    $this->load->helper('directory');    //讀取路徑的資訊    $map = directory_map(self::$img_path, FALSE, TRUE);    echo "<pre>";    print_r($map);    echo "</pre>";    if(!empty($map) && is_array($map))    {      $this->build_path($map);    }  }  /**   * 遞迴產生相應的路徑   * @param array $map   */  private function build_path($map = array())  {     if(!file_exists(self::$new_path))    {      mkdir(self::$new_path, 0777);    }    foreach($map as $key => $val)    {      $old_img_path = self::$img_path;      $old_tmp_path = self::$img_path.$key.'/';      $new_img_path = self::$new_path;      $new_tmp_path = self::$new_path.$key.'/';      if(is_dir($old_tmp_path))      {        //echo $new_tmp_path;        if(!file_exists($new_tmp_path))        {          mkdir($new_tmp_path, 0777);        }        self::$img_path = $old_tmp_path;        self::$new_path = $new_tmp_path;        echo 'path:'.self::$img_path."<hr>";        $this->load->helper('directory');        $c_map = directory_map($old_tmp_path, FALSE, TRUE);//           echo "<pre>";//           print_r($c_map);//           echo "</pre>";        if(!empty($c_map) && is_array($c_map))        {          $this->build_path($c_map);        }      }      if(is_file(self::$img_path.$val))      {        echo 'file:'.self::$img_path.$val."<hr>";        $img = array();        $img['source_image'] = self::$img_path.$val;        $img['new_image']  = self::$new_path.$val;        $this->build_img($img);      }      self::$img_path = $old_img_path;      self::$new_path = $new_img_path;    }  }  /**   * 根據原圖片產生新的圖片   * @param array $img   * $img = array('source_image'=> '原圖片的路徑', 'new_image' => '新圖片路徑')   */  private function build_img($img = array())  {      if(!is_array($img) || empty($img))    {      return FALSE;    }    //設定映像產生參數    $config['image_library']  = 'gd2';  //設定映像庫    $config['source_image']   = $img['source_image']; //設定原始映像的名字/路徑    $config['create_thumb']   = FALSE;  //讓影像處理函數產生一個預覽映像    $config['maintain_ratio']  = TRUE; //指定是否在縮放或使用硬值的時候使映像保持原始的縱橫比例    //$config['quality']     = 200;    $img_info = array();    $img_info = getimagesize($config['source_image']);//擷取圖片的尺寸    if(is_array($img_info) && !empty($img_info))    {      $config['width']      = $img_info[0];      $config['height']      = $img_info[1];    }    $config['new_image']    = $img['new_image']; //新圖片路徑    $this->load->library('image_lib', $config); //載入圖片處理類    $this->image_lib->initialize($config); //調用    if ( ! $this->image_lib->resize())    {      echo $this->image_lib->display_errors();    }        $this->image_lib->clear(); //清除圖片處理參數  }}?>

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.