亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js插件Jcrop自定義截取圖片功能

2019-11-20 08:44:59
字體:
來源:轉載
供稿:網友

當初說這個需求的時候,在網上找了一點資料,但是基本上感覺不符合項目中的需求。參照一些項目,和同事的改造,終于是像點樣子了。

截圖大致截為3個像素,每個像素使用的地方也不同,考慮圖片不會是很多,分別壓縮保存下來。

根據截取的像素位置,對應的壓縮成相應的圖片:

 

首先需要下載Jcrop.js與uploadify.js 上傳圖片的插件和截圖的插件

Comm_UploadJcrop.js

//剪裁頭像對象和寬高比例var jcrop_api, boundx, boundy;//上傳圖片 //Id:上傳控件Id//IsShowProgress:是否需要展示進度條//SuccessFunc: 上傳成功執行的方法function UploadImg(Id, IsShowProgress, SuccessFunc,IsJcrop) { var uploadObj = $("#" + Id); var htmlstr = "<div class='upload_ShowFileProgress' id='" + Id + "-queue' " + (IsShowProgress ? "" : "style='display:none;'") + "></div>"; uploadObj.parent().append(htmlstr); var img_UploadUrl = IsJcrop ? "/Upload/UploadifyHeader" : "/Upload/UploadifyImg"; //Upload控制器中方法 uploadObj.uploadify({  //指定swf文件  'swf': '/Scripts/uploadify/uploadify.swf',//下載uploadify插件中的uploadify.swf  //后臺處理的頁面  'uploader': img_UploadUrl,  //進度條id  'queueID': Id + "-queue",  //進度條顯示完成后是否自動消失  'removeCompleted': false,  //按鈕相關  'buttonClass': 'btn_Upload',  'buttonText': '請選擇圖片',  'height': '31',  'width': '108',  //在瀏覽窗口底部的文件類型下拉菜單中顯示的文本  'fileTypeDesc': 'Image Files',  //允許上傳的文件后綴  'fileTypeExts': '*.gif; *.jpg; *.png; *.bmp; *.jpeg; *.svg',  //選擇文件后自動上傳  'auto': true,  //設置為true將允許多文件上傳  'multi': false,  'onUploadSuccess': function (file, data, response) {   if (SuccessFunc != undefined && SuccessFunc != null && SuccessFunc.length > 0) {    eval(SuccessFunc + "(file,data,response)");   }  } });}//上傳文件//Id:上傳控件Id//IsShowProgress:是否需要展示進度條//SuccessFunc: 上傳成功執行的方法function UploadFile(Id, IsShowProgress, SuccessFunc) { var uploadObj = $("#" + Id); var htmlstr = "<div class='upload_ShowFileProgress' id='" + Id + "-queue' " + (IsShowProgress ? "" : "style='display:none;'") + "></div>"; uploadObj.parent().append(htmlstr); uploadObj.uploadify({  //指定swf文件  'swf': '/Scripts/uploadify/uploadify.swf',  //后臺處理的頁面  'uploader': '/Upload/Uploadify',  //進度條id  'queueID': Id + "-queue",  //進度條顯示完成后是否自動消失  'removeCompleted': false,  //按鈕相關  'buttonClass': 'btn_Upload',  'buttonText': '請選擇文件',  'height': '31',  'width': '108',  //上傳文件的類型 默認為所有文件  'All Files': '*.*',  //在瀏覽窗口底部的文件類型下拉菜單中顯示的文本  //'fileTypeDesc': 'Image Files',  //允許上傳的文件后綴  'fileTypeExts': '*.*',  //選擇文件后自動上傳  'auto': false,  //設置為true將允許多文件上傳  'multi': true,  'onUploadSuccess': function (file, data, response) {   if (SuccessFunc != undefined && SuccessFunc != null && SuccessFunc.length > 0) {    eval(SuccessFunc + "(file,data,response)");   }  } });}//設定圖片function SetJcropImage(url) { $(".div_NoFileTip").hide(); $(".UploadImgContainer").show(); $("#preview_large").attr("src", url); $("#preview_large2").attr("src", url); $("#preview_large3").attr("src", url); $("#imgsrc").val(url); ErealizeJcrop(url);}//剪切圖片function ErealizeJcrop(url) { var $pcnt = $('#preview_large2').parent(),  xsize = $pcnt.width(),  ysize = $pcnt.height(); $('#preview_large').Jcrop({  onChange: updatePreview,  onSelect: updatePreview,  onSelect: updateCoords,  aspectRatio: xsize / ysize }, function () {  var bounds = this.getBounds();  boundx = bounds[0];  boundy = bounds[1];  jcrop_api = this;  // $preview.appendTo(jcrop_api.ui.holder); }); //更換圖片時重新加載圖片 if (jcrop_api != undefined)  jcrop_api.setImage(url); function updateCoords(c) {  $('#x').val(c.x);  $('#y').val(c.y);  $('#w').val(c.w);  $('#h').val(c.h); }; function updatePreview(c) {  if (parseInt(c.w) > 0) {   var rx = xsize / c.w;   var ry = ysize / c.h;   $("#preview_large2").css({    width: Math.round(rx * boundx) + 'px',    height: Math.round(ry * boundy) + 'px',    marginLeft: '-' + Math.round(rx * c.x) + 'px',    marginTop: '-' + Math.round(ry * c.y) + 'px'   });   $pcnt = $('#preview_large3').parent(),   xsize2 = $pcnt.height();   ysize2 = $pcnt.height();   var rx2 = xsize2 / c.w;   var ry2 = ysize2 / c.h;   $("#preview_large3").css({    width: Math.round(rx2 * boundx) + 'px',    height: Math.round(ry2 * boundy) + 'px',    marginLeft: '-' + Math.round(rx2 * c.x) + 'px',    marginTop: '-' + Math.round(ry2 * c.y) + 'px'   });  } };

 后臺代碼: 

  #region 判斷文件夾是否存在,不存在則創建,返回文件夾路徑  private void CheckFileExistsCreateNew(string filepath)  {   if (!Directory.Exists(Server.MapPath(filepath)))   {    Directory.CreateDirectory(Server.MapPath(filepath));//創建文件夾   }  }  #endregion  #region 上傳圖片  //上傳頭像  [HttpPost]  public JsonResult UploadifyHeader(HttpPostedFileBase fileData)  {   if (fileData != null)   {    try    {     // 文件上傳后的保存路徑     string fileName = Path.GetFileName(fileData.FileName);// 原始文件名稱     string fileExtension = Path.GetExtension(fileName); // 文件擴展名     string saveName =DateTime.Now.ToString("yyyyMMddHHmmssffff")+"_Y" + fileExtension; // 保存文件名稱      string Url = "/Upload/" + CurrentUserInfo.Sys_RentCompany.CompanyKey + "/" + CurrentUserInfo.Comm_User.Id + "/UploadImg"; //在項目中創建一個Upload文件夾存放上傳和截取的圖片 CurrentUserInfo.Sys_RentCompany.CompanyKey 為session 保存的值 這里對應的文件夾的路徑 自己可以定義     string ShowUrl = Url + "/" + saveName;     string filePhysicalPath = Server.MapPath(ShowUrl);     //當前登陸人文件夾     CheckFileExistsCreateNew(Url);     fileData.SaveAs(filePhysicalPath);     //壓縮圖片     string YsFileImg = ImgHandler.YsImg(ShowUrl, filePhysicalPath);     return Json(YsFileImg);    }    catch (Exception ex)    {     return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);    }   }   else   {    return Json(new { Success = false, Message = "請選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);   }  }  //上傳頭像  [HttpPost]  public JsonResult UploadifyImg(HttpPostedFileBase fileData)  {   if (fileData != null)   {    try    {     // 文件上傳后的保存路徑     string fileName = Path.GetFileName(fileData.FileName);// 原始文件名稱     string fileExtension = Path.GetExtension(fileName); // 文件擴展名     string saveName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_Y" + fileExtension; // 保存文件名稱      //string filed = "/Upload/" + saveName;//路經     string Url = "/Upload/" + CurrentUserInfo.Sys_RentCompany.CompanyKey + "/" + CurrentUserInfo.Comm_User.Id + "/UploadImg";     string ShowUrl = Url + "/" + saveName;     string filePhysicalPath = Server.MapPath(ShowUrl);     //當前登陸人文件夾     CheckFileExistsCreateNew(Url);     fileData.SaveAs(filePhysicalPath);     return Json(ShowUrl);    }    catch (Exception ex)    {     return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);    }   }   else   {    return Json(new { Success = false, Message = "請選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);   }  }  //保存剪切的圖片  [HttpPost]  public JsonResult JcropImg(FormCollection colls)  {   JsonFormatResult result = new JsonFormatResult { IsSuccess = true, Message = "保存成功!" };   try   {    int x = int.Parse(colls["x"]);    int y = int.Parse(colls["y"]);    int w = int.Parse(colls["w"]);    int h = int.Parse(colls["h"]);    string imgsrc = colls["imgsrc"];    string Path = ImgHandler.CutAvatar(imgsrc, x, y, w, h);    result.Data = Path;   }   catch (Exception e)   {    result.IsSuccess = false;    result.Message = e.Message;   }   return Json(result);  }   #endregion

照搬的代碼肯定會有缺陷,可以根據需求修改成適合的項目。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
啪一啪鲁一鲁2019在线视频| 国产精品va在线播放我和闺蜜| 久久久成人av| 777精品视频| 国产亚洲欧美aaaa| 日韩av综合网| 91麻豆国产精品| 亚洲影院色在线观看免费| 日产日韩在线亚洲欧美| 欧美高清视频在线| 亚洲欧洲国产精品| 韩国一区二区电影| 91亚洲精品久久久久久久久久久久| 亚洲精品美女视频| 欧美极度另类性三渗透| 91在线免费观看网站| 久久久久久美女| 欧美裸体视频网站| 性色av一区二区三区红粉影视| 91高潮在线观看| 国产精品爽黄69天堂a| 成人福利免费观看| 欧美久久精品一级黑人c片| 在线播放日韩av| 国产精品久久久久久久久久| 国产成人精品综合| 亚洲图片欧美日产| 1769国产精品| 欧美激情一二三| 中文字幕亚洲一区在线观看| 色多多国产成人永久免费网站| 欧美一区二区影院| 在线观看日韩av| 亚洲精品97久久| 色婷婷综合久久久久中文字幕1| 国自产精品手机在线观看视频| 成人97在线观看视频| 亚洲色图欧美制服丝袜另类第一页| 欧美老少做受xxxx高潮| 这里精品视频免费| 国产精品一区久久久| 国产欧美日韩专区发布| 亚洲最大的成人网| 亚洲性猛交xxxxwww| 午夜精品久久久久久久男人的天堂| 欧美—级a级欧美特级ar全黄| 91天堂在线视频| 一区二区三区动漫| 久久欧美在线电影| 成人在线视频福利| 欧美午夜精品久久久久久人妖| 欧美精品日韩三级| 在线观看欧美成人| 26uuu另类亚洲欧美日本一| 亚洲黄页视频免费观看| 国产精品美女www| 久久99精品视频一区97| 亚洲色图35p| 91精品久久久久久综合乱菊| 日本高清+成人网在线观看| 国产精品露脸av在线| 狠狠躁天天躁日日躁欧美| 91午夜在线播放| 欧美做爰性生交视频| 久久精品国产成人精品| 成人写真视频福利网| 亚洲精品福利在线观看| 亚洲最大福利视频网站| 色综合视频网站| 日本国产欧美一区二区三区| 国产欧美精品一区二区三区介绍| 欧美午夜激情小视频| 久久人人97超碰精品888| 久久久亚洲成人| 亚洲免费精彩视频| 国产精品视频播放| 中文字幕精品av| 91麻豆国产语对白在线观看| 成人自拍性视频| 国产精品久久久久久一区二区| 久热精品视频在线免费观看| 国产日韩欧美成人| 丰满岳妇乱一区二区三区| 日韩中文字幕视频在线| 亚洲欧洲国产一区| 97精品视频在线| 亚洲精品久久久久久久久| 97在线日本国产| 最新中文字幕亚洲| 日韩精品一区二区三区第95| 国产精品日本精品| 国产精品久久电影观看| 久久精品99无色码中文字幕| www.欧美免费| 亚洲国产一区二区三区在线观看| 国产性色av一区二区| 91欧美激情另类亚洲| 亚洲成人在线网| 日韩精品999| 97久久精品人搡人人玩| 97国产在线视频| 亚洲精品电影在线观看| 欧美色道久久88综合亚洲精品| 精品福利一区二区| 主播福利视频一区| 国产精品久久久久91| 欧美另类第一页| 色偷偷av亚洲男人的天堂| 国产欧美日韩中文字幕在线| 亚洲在线www| 青青在线视频一区二区三区| 国产精品69av| 国产午夜精品美女视频明星a级| 不用播放器成人网| 国产91精品黑色丝袜高跟鞋| 成人做爽爽免费视频| 中文字幕av一区二区三区谷原希美| 在线日韩第一页| 亚洲bt天天射| 国产精品av在线播放| 久久青草福利网站| 国产日本欧美在线观看| 欧美精品18videos性欧美| 国产精品福利观看| 亚洲人精品午夜在线观看| 国产精品日韩在线播放| 国产在线999| 这里只有精品视频在线| 亚洲色在线视频| 久久久久久噜噜噜久久久精品| 色综合久久88| 国产精品视频免费观看www| 亚洲精品在线看| 亚洲免费伊人电影在线观看av| 日本久久精品视频| 国产成人精品视| 欧美性xxxx极品hd满灌| 欧美交受高潮1| 国产一区二区三区四区福利| 亚洲国产高潮在线观看| 日韩av电影免费观看高清| 成人高清视频观看www| 北条麻妃一区二区在线观看| 欧美激情久久久| 欧美激情精品久久久久久| 国产欧亚日韩视频| 中文字幕在线国产精品| 国产精品久久久久久久久久久久久久| 亚洲最大成人在线| 久久99热精品这里久久精品| 伊人久久精品视频| 欧美日韩成人黄色| 精品成人国产在线观看男人呻吟| 日韩在线观看高清| 日韩视频免费大全中文字幕| 亚洲的天堂在线中文字幕| 黄色成人av在线| 57pao成人国产永久免费| 欧美成aaa人片在线观看蜜臀| 日韩欧美国产骚| 亚洲精品第一页| 亚洲综合第一页| 亚洲精品av在线| 在线观看日韩专区|