上傳頭像demo,可以裁剪

請轉載此文的朋友務必附帶原文鏈接,謝謝。

原文鏈接:http://xuyran.blog.51cto.com/11641754/1866681

//上傳頭像
$(window).load(function() {
	$('#upload-file').on('change', function(){
		var fimg = this.files[0];
		var filter = /^(?:p_w_picpath\/bmp|p_w_picpath\/cis\-cod|p_w_picpath\/gif|p_w_picpath\/ief|p_w_picpath\/jpeg|p_w_picpath\/jpeg|p_w_picpath\/jpeg|p_w_picpath\/pipeg|p_w_picpath\/png|p_w_picpath\/svg\+xml|p_w_picpath\/tiff|p_w_picpath\/x\-cmu\-raster|p_w_picpath\/x\-cmx|p_w_picpath\/x\-icon|p_w_picpath\/x\-portable\-anymap|p_w_picpath\/x\-portable\-bitmap|p_w_picpath\/x\-portable\-graymap|p_w_picpath\/x\-portable\-pixmap|p_w_picpath\/x\-rgb|p_w_picpath\/x\-xbitmap|p_w_picpath\/x\-xpixmap|p_w_picpath\/x\-xwindowdump)$/i;
	    if(this.files.length !== 0){
		if(!filter.test(fimg.type)){
			alertBoxSmall("請選擇有效的圖片文件!");
		}else if(parseInt(fimg.size/1024) > 1024){
			alertBoxSmall("圖片大小不得超過1M!");
		}else{
		var reader = new FileReader();
		reader.onload = function(e) {
			$("#avatar")[0].src = e.target.result;
			cropped();
			//上傳頭像遮罩隨時變化
			$('img#avatar').imgAreaSelect({
					aspectRatio: "1:1",
					x1: 100,
					y1:0,
					x2: 300,
					y2: 200,
				});
			}
		reader.readAsDataURL(this.files[0]);
		}
		}
	})
	//$('#btnCrop').on('click', cropped);
});
//上傳頭像
				$('img#avatar').imgAreaSelect({
						aspectRatio: "1:1",
						x1: 100,
						y1:0,
						x2: 300,
						y2: 200,
						onSelectEnd: selectInit,
						onSelectChange: preview
					});			
function cropped(){
	var img = $("#avatar").attr("src");
	$('.cropped ul li:first-child img').attr("src",img);
	$('.cropped ul li:nth-child(2) img').attr("src",img);
	$('.cropped ul li:last-child img').attr("src",img);
}
function adjust(el, selection) {
	var scaleX = $(el).width() / (selection.width || 1);
	var scaleY = $(el).height() / (selection.width || 1);
	$(el+' img').css({
		width: Math.round(scaleX*$('#avatar').width() ) + 'px',
		height: Math.round(scaleY*$('#avatar').height() ) + 'px',
		marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
		marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
	});
}

function preview(img, selection) {
	adjust('#small_preview01', selection);
	adjust('#small_preview02', selection);
	adjust('#small_preview03', selection);
}
/*圖像上傳2*/
/*
 * imgAreaSelect default style
 */

.imgareaselect-border1 {
	background: url(../p_w_picpaths/border-v.gif) repeat-y left top;
}

.imgareaselect-border2 {
    background: url(../p_w_picpaths/border-h.gif) repeat-x left top;
}

.imgareaselect-border3 {
    background: url(../p_w_picpaths/border-v.gif) repeat-y right top;
}

.imgareaselect-border4 {
    background: url(../p_w_picpaths/border-h.gif) repeat-x left bottom;
}

.imgareaselect-border1, .imgareaselect-border2,
.imgareaselect-border3, .imgareaselect-border4 {
    filter: alpha(opacity=80);
	opacity: 0.8;
}

.imgareaselect-handle {
    background-color: #fff;
    border: solid 1px #000;
    filter: alpha(opacity=50);
    opacity: 0.5;
}

.imgareaselect-outer {
    background-color: #000;
    filter: alpha(opacity=50);
    opacity: 0.5;
    max-height: 200px;
}

.imgareaselect-selection {  
}
<div class="right-container set">
				<div class="">
					<div class="box02">
						<div class="p_w_picpathBox">
							<img id="avatar" src="../Content/p_w_picpaths/preview.png"/>
						   <!-- <div class="spinner" style="display: none">Loading...</div>-->
						</div>
						<form id="crop_form" method="post" action=".">
							<!--通過生成尺寸  後臺獲取尺寸再進行裁剪-->
							<input id="id_top" type="hidden" name="top" >
							<input id="id_left" type="hidden" name="left">
							<input id="id_right" type="hidden" name="right">
							<input id="id_bottom" type="hidden" name="bottom">
							<input id="id_width" type="hidden" /> 
							<input id="id_height" type="hidden" />
						</form>
						<div class="action"> 
						    <div class="new-contentarea tc"> <a href="javascript:void(0)" class="upload-img">
							    <label for="upload-file">上傳</label>
							    </a>
							    <input type="file" class="" name="upload-file" id="upload-file" />
						    </div>
						    <input type="button" id="btnCrop"  class="Btnsty_peyton" value="保存">
						    <div class="imgIntro">你可以上傳JPG、JPEG、PNG格式文件,限制大小1M以內</div>

						</div>
							<div class="cropped" >
								<ul>
									<li >
										<span>100*100</span>
										<span class="img01" id="small_preview01"><img src="../Content/p_w_picpaths/preview.png" id="avatar1" style="margin-left: -50px;width: 200px;"/></span> 
									</li>
									<li >
										<span>55*55</span>
										<span class="img02" id="small_preview02"><img src="../Content/p_w_picpaths/preview.png" id="avatar2" style="margin-left: -25px;width: 110px;"/></span>
									</li>
									<li>
										<span>32*32</span>
										<span class="img03"  id="small_preview03"><img src="../Content/p_w_picpaths/preview.png" id="avatar3" style="margin-left: -15px;width: 64px;"/></span>
									</li>
								</ul>
							</div>
					</div>

效果如下,demo見附件:

wKiom1ghqfHDd9RoAAImrpq28yM178.png-wh_50

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章