摘要:獲取圖片地址之后,進行截取圖片這里推薦一個插件點這里,具體怎么用就不再贅述。等截取圖片之后,需要將截取的文件轉換為二進制大文件。調取接口,將二進制大文件上傳即可。
上傳頭像插件
目的: 幫助開發者快速開發上傳頭像功能點
背景: 現在b,g能搜到的頭像上傳插件并不太好用,所以想提供一個比較自由度的上傳并且可以剪切的插件。
資源: 具體資源請查看這里
實現大致思路如下:先有一個上傳的(本地上傳的功能),然后獲取圖片的地址。
獲取圖片地址之后,進行截取圖片(這里推薦一個插件)點這里,具體怎么用就不再贅述。
等截取圖片之后,需要將截取的文件轉換為二進制大文件。$("#image").cropper("getCroppedCanvas").toBlob();
調取接口,將二進制大文件上傳即可。
直接上代碼:先引入如下文件
cropper.js [點這里](https://github.com/fengyuanchen/cropperjs)
具體業務代碼
$(function () { var URL = window.URL || window.webkitURL; var $image = $("#image"); var $rotate = $("#userImg_rotate"); var $reUpload = $("#userImg_reUpload"); var $zoomOut = $("#userImg_zoomOut"); var $zoomIn = $("#userImg_zoomIn"); var $save = $("#userImg_save"); var croppable = false; var $previews = $(".userImg_preview"); var options = { aspectRatio: 1, viewMode: 1, built: function () { croppable = true; }, build: function (e) { var $clone = $(this).clone(); $clone.css({ display: "block", width: "100%", minWidth: 0, minHeight: 0, maxWidth: "none", maxHeight: "none" }); $previews.css({ width: "100%", overflow: "hidden" }).html($clone); }, crop: function (e) { var imageData = $(this).cropper("getImageData"); var previewAspectRatio = e.width / e.height; $previews.each(function () { var $preview = $(this); var previewWidth = $preview.width(); var previewHeight = previewWidth / previewAspectRatio; var imageScaledRatio = e.width / previewWidth; $preview.height(previewHeight).find("img").css({ width: imageData.naturalWidth / imageScaledRatio, height: imageData.naturalHeight / imageScaledRatio, marginLeft: -e.x / imageScaledRatio, marginTop: -e.y / imageScaledRatio }); }); } }; var originalImageURL = $scope.userInfo_imgUrl; var uploadedImageURL; $scope.initCropper = function(){ // init $image.attr("src",$scope.userInfo_imgUrl).cropper(options); }; // rotate $rotate.on("click", function(){ $image.cropper("rotate", 90); }); // zoomOut $zoomOut.on("click",function(){ $image.cropper("zoom", -0.1); }); // zoomIn $zoomIn.on("click",function(){ $image.cropper("zoom", 0.1); }); // Move /*$move.on("click",function(){ $image.cropper("setDragMode"); });*/ // reUpload $reUpload.on("click",function(){ $image.cropper("destroy").attr("src", $scope.userInfo_imgUrl).cropper(options); if (uploadedImageURL) { URL.revokeObjectURL(uploadedImageURL); uploadedImageURL = ""; } }); // Keyboard $(document.body).on("keydown", function (e) { if (!$image.data("cropper") || this.scrollTop > 300) { return; } switch (e.which) { case 37: e.preventDefault(); $image.cropper("move", -1, 0); break; case 38: e.preventDefault(); $image.cropper("move", 0, -1); break; case 39: e.preventDefault(); $image.cropper("move", 1, 0); break; case 40: e.preventDefault(); $image.cropper("move", 0, 1); break; } }); // 剪切和確定上傳圖片 $save.on("click",function(){ common.Loading.show(); $("#image").cropper("getCroppedCanvas").toBlob(function (blob) { var formData = new FormData(); formData.append("photoFile", blob); // 這里寫入后端給你的上傳接口 $.ajax(API_URL+"", { method: "POST", data: formData, headers: { "auth-token" : common.Cookie.get("token") }, processData: false, contentType: false, success: function (res) { common.Loading.hide(); common.Toast.show("頭像上傳成功!"); try{ $scope.$apply(function(){ $scope.isShowUnCompleteInfoBox = false; $scope.isShowCompleteInfoBox = false; $scope.userInfo_imgUrl = res.data; }) }catch(err){ console.log(err) } }, error: function () { common.Toast.show("頭像上傳失敗!"); } }); }); }) // 上傳圖片,這里傳本地的圖片并且獲取一個本地圖片的路徑 var $inputImage = $("#inputImage"); if (URL) { $inputImage.change(function () { var files = this.files; var file; if (!$image.data("cropper")) { return; } if (files && files.length) { file = files[0]; if (/^image/w+$/.test(file.type)) { if (uploadedImageURL) { URL.revokeObjectURL(uploadedImageURL); } uploadedImageURL = URL.createObjectURL(file); $image.cropper("destroy").attr("src", uploadedImageURL).cropper(options); $inputImage.val(""); } else { common.Toast.show("請選擇圖片再上傳!") } } }); } else { $inputImage.prop("disabled", true).parent().addClass("disabled"); } });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88805.html
摘要:獲取圖片地址之后,進行截取圖片這里推薦一個插件點這里,具體怎么用就不再贅述。等截取圖片之后,需要將截取的文件轉換為二進制大文件。調取接口,將二進制大文件上傳即可。 上傳頭像插件 目的: 幫助開發者快速開發上傳頭像功能點 背景: 現在b,g能搜到的頭像上傳插件并不太好用,所以想提供一個比較自由度的上傳并且可以剪切的插件。 資源: 具體資源請查看這里 實現大致思路如下: 先有一個上傳的...
摘要:做為網站前段開發人員來說,用戶頭像剪裁和上傳是一個很常用的功能,一般這個功能涉及到圖片的放大,縮小,移動,旋轉,和剪裁。下面我們來做一個完整的,剪裁后的圖片以的形式返回,怎么上傳到后臺服務器,很簡單,這里不做介紹。 做為網站前段開發人員來說,用戶頭像剪裁和上傳是一個很常用的功能,一般這個功能涉及到圖片的放大,縮小,移動,旋轉,和剪裁。下面我們來做一個完整的demo,剪裁后的圖片以bas...
摘要:做為網站前段開發人員來說,用戶頭像剪裁和上傳是一個很常用的功能,一般這個功能涉及到圖片的放大,縮小,移動,旋轉,和剪裁。下面我們來做一個完整的,剪裁后的圖片以的形式返回,怎么上傳到后臺服務器,很簡單,這里不做介紹。 做為網站前段開發人員來說,用戶頭像剪裁和上傳是一個很常用的功能,一般這個功能涉及到圖片的放大,縮小,移動,旋轉,和剪裁。下面我們來做一個完整的demo,剪裁后的圖片以bas...
摘要:實現原理簡單,純技術處理圖片,幾乎不需要用到相關知識面向人群急于使用頭像裁剪組件的同學。裁剪框初始寬高上傳圖片后,裁剪區將預設為最大裁剪范圍。支持矩形裁剪目前九宮僅支持將圖片裁剪為正方形,不能裁剪為矩形,該功能將在后續優化。 項目簡介 本組件是vue下的頭像裁剪組件,可以直接拷貝代碼使用,無需安裝依賴 使用九宮格進行裁剪,自由選擇裁剪區域。 實時預覽裁剪后效果。 可以將裁剪好的圖片,...
閱讀 909·2021-09-09 09:32
閱讀 2849·2021-09-02 10:20
閱讀 2685·2021-07-23 11:24
閱讀 824·2019-08-30 15:54
閱讀 3631·2019-08-30 15:54
閱讀 1346·2019-08-30 11:02
閱讀 2844·2019-08-26 17:40
閱讀 1122·2019-08-26 13:55