本文实例为大家详细介绍了php实现图片上传、剪切功能的具体代码,供大家参考,具体内容如下

<?php
defined("BASEPATH") OR exit("No direct script access allowed");
 
class Index extends MY_Controller {
  function __construct(){
    parent::__construct();
    $this->load->helper(array("form", "url"));
  }
 
  /**
   * 首页
   */
  public function index() {
    $this->load->view("upload_form", array("error" => " " ));
  }
   
   
  public function do_upload()
  {
    $config["upload_path"]   = "./data/uploads/";
    $config["allowed_types"]  = "gif|jpg|png";
    $config["max_size"]   = 100;
    $config["max_width"]    = 1024;
    $config["max_height"]    = 768;
 
    $this->load->library("upload", $config);
 
    if ( ! $this->upload->do_upload("userfile"))
    {
      $error = array("error" => $this->upload->display_errors());
 
      $this->load->view("upload_form", $error);
    }
    else
    {
      $data = array("upload_data" => $this->upload->data());
       
      $this->load->library("image_lib");      
      list($width, $height) = getimagesize($data["upload_data"]["full_path"]);
      $config["image_library"] = "gd2";
      $config["source_image"] = $data["upload_data"]["full_path"];
      $config["maintain_ratio"] = TRUE;
      if($width >= $height)
      {
        $config["master_dim"] = "height";
      }else{
        $config["master_dim"] = "width";
      }
      $config["width"] = 180;
      $config["height"] = 180;
      $this->image_lib->initialize($config);
      $this->image_lib->resize();
     
      $config["maintain_ratio"] = FALSE;
      if($width >= $height)
      {
        $config["x_axis"] = floor(($width * 180 / $height - 180)/2);
      }else{
        $config["y_axis"] = floor(($height * 180 / $width - 180)/2);
      }
      $this->image_lib->initialize($config);
      $this->image_lib->crop();
       
      $this->load->view("upload_success", $data);
    }
  }
}

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。