jQuery Jcrop是一款前端插件,用于裁剪圖片。它廣泛地應用于頭像上傳的功能中。以下是一些關于它的注意事項和使用方式:
$(function(){ $('#img').Jcrop({ setSelect: [0,0,200,200], aspectRatio: 1, minSize: [200,200], allowSelect: false, allowResize: true, onChange: showPreview, onSelect: showPreview }); function showPreview(coords) { var img = $('#img')[0]; var canvas = document.getElementById("avarta_canvas"); canvas.width = canvas.height = 200; var ctx = canvas.getContext("2d"); var ratio = img.naturalWidth / img.width; ctx.drawImage(img, coords.x * ratio, coords.y * ratio, coords.w * ratio, coords.h * ratio, 0, 0, 200, 200); $('#avatar').val(canvas.toDataURL()); } });
上面的代碼通過選擇一個ID為“img”的圖片,達到自適應大小。還包含需要傳入的一些參數(如選擇的區域、比例、最小大小),并最終通過回調函數showPreview(c)將裁剪后的圖片轉換為一個DataURL并將其放置在一個藏在頁面中的中,以備服務器能夠存取。
一個應該牢記的明確點是,裁剪后的圖片并不會被直接提交給服務器。前端會先把圖片上傳至服務器,后端再對這張裁剪后的圖片進行保存。
上一篇route vue