/** * file-input.js * target container must be id "preview" */ function previewImage(file,className,id) { var MAXWIDTH,MAXHEIGHT; var div = $('#'+id).get(0); if(className==='preview-long'){ MAXWIDTH = 200; MAXHEIGHT = 356; } else if(className==='preview-short'){ MAXWIDTH = 200; MAXHEIGHT = 300; } else{ MAXWIDTH = 120; MAXHEIGHT = 120; } if (file.files && file.files[0]) { div.innerHTML = ''; var img = $('#'+id).find('.imghead').get(0); img.onload = function(){ var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); img.width = rect.width; img.height = rect.height; img.style.marginLeft = rect.left+'px'; img.style.marginTop = rect.top+'px'; } var reader = new FileReader(); reader.onload = function(evt){img.src = evt.target.result;} reader.readAsDataURL(file.files[0]); } else { var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'; file.select(); var src = document.selection.createRange().text; div.innerHTML = ''; var img = $('#'+id).find('.imghead').get(0); img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src; var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height); div.innerHTML = "
"; } $('.file').attr('name','image'); } function clacImgZoomParam( maxWidth, maxHeight, width, height ){ var param = {top:0, left:0, width:width, height:height}; if( width>maxWidth || height>maxHeight ) { rateWidth = width / maxWidth; rateHeight = height / maxHeight; if( rateWidth > rateHeight ) { param.width = maxWidth; param.height = Math.round(height / rateWidth); }else { param.width = Math.round(width / rateHeight); param.height = maxHeight; } } param.left = Math.round((maxWidth - param.width) / 2); param.top = Math.round((maxHeight - param.height) / 2); return param; }