45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:php imgareaselect图片裁剪的使用方法

php imgareaselect图片裁剪的使用方法

2015-07-23 19:46:41 来源:www.45fan.com 【

php imgareaselect图片裁剪的使用方法

引用CSS

/js/jquery.imgareaselect-0.9.10/css/imgareaselect-default.css 

引用js

/js/jquery.imgareaselect-0.9.10/scripts/jquery.imgareaselect.min.js 
/js/AjaxFileUploaderV2.1/ajaxfileupload.js

html

<div>
 <img src='blank.jpg' id="mainimg">
</div>
<div id="myPreview" >
 <img src="blank.jpg" id="mainimgthumb" />
</div>
 <form name="fmCrop">
  <input type="hidden" name="src_path" value="" />
  <input type="hidden" name="x1" value="" />
  <input type="hidden" name="x2" value="" />
  <input type="hidden" name="y1" value="" />
  <input type="hidden" name="y2" value="" />
  <input type="submit" name="btnSubmit" class="baseinf_but1" style="display:none" value="确定" />
 </form>

jQuery代码

$("#mainimg_src", content).load(function () {
  crop($("#mainimg", content));
  });

  function crop($img) { //$img是
       //缩小比例
       var scalex =$img.width() / $("#mainimg_src").width();
       var scaley =$img.height() / $("#mainimg_src").height();

       $img.imgAreaSelect({
        x1:0,y1:0,x2:150,y2:150,
        handles: true, aspectRatio: '1:1',
        onSelectEnd: function (img, selection) {
         var scaleX = 100 / (selection.width || 1);
         var scaleY = 100 / (selection.height || 1);

         $('#mainimgthumb').css({
          width: Math.round(scaleX * 400) + 'px',
          height: Math.round(scaleY * 300) + 'px',
          marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
          marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
         });
         $('input[name="x1"]', content).val(selection.x1/scalex);
         $('input[name="y1"]', content).val(selection.y1/scaley);
         $('input[name="x2"]', content).val(selection.x2/scalex);
         $('input[name="y2"]', content).val(selection.y2/scaley);
        }
       });
      }

确定裁剪

     //确定剪切
$("form[name=fmCrop]", content).submit(function () {
 var data = $("form[name=fmCrop]", content).serializeArray();
 $.get('/members/web-members-rest/crop.html', data, function (r) {
  switch (r.result) {
    case "Success":
     jAlert("操作成功");
     $("#left_mainimg").attr("src", "/" + r.path + '?a=' + (new Date()).format('yyyyMMddhhmmss'));
     $("#myPreview", content).css("display", "block");
     $("#myPreview", content).prev().css("display", "none");
     $("#mainimg", content).imgAreaSelect({ hide: true });
     $("form[name=fmUpload]", content).css("display", "none");
     $("input[name=btnSubmit]", content).css("display", "none");
     break;
    }
 });
 return false;
});

服务器端php代码

public function actionCrop($src_path,$x1,$x2,$y1,$y2){
  $pic =$src_path;

  $width = $x2-$x1;
  $height = $y2-$y1;

  $type=exif_imagetype($pic); //判断文件类型
  $support_type=array(IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);
  if(!in_array($type, $support_type,true)) {
   echo "this type of image does not support! only support jpg , gif or png";
   exit();
  }
  switch($type) {
   case IMAGETYPE_JPEG :
    $image = imagecreatefromjpeg($pic);
    break;
   case IMAGETYPE_PNG :
    $image = imagecreatefrompng($pic);
    break;
   case IMAGETYPE_GIF :
    $image = imagecreatefromgif($pic);
    break;
   default:
    echo "Load image error!";
    exit();
  }

  $copy = $this->PIPHP_ImageCrop($image, $x1, $y1, $width, $height);//裁剪

  imagejpeg($copy, $src_path); //替换新图
  return ['result'=>'Success','path'=>$src_path]; //返回新图地址
 }
 function PIPHP_ImageCrop($image, $x, $y, $w, $h){
  $tw = imagesx($image); 
  $th = imagesy($image); 

  if ($x > $tw || $y > $th || $w > $tw || $h > $th) return FALSE; 

  $temp = imagecreatetruecolor($w, $h); 
  imagecopyresampled($temp, $image, 0, 0, $x, $y, $w, $h, $w, $h); 
  return $temp; 
 }

以上所述就是本文的全部内容了,希望大家能够喜欢。


本文地址:http://www.45fan.com/bcdm/15479.html
Tags: PHP 结合 imgareaselect
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部