123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- mui.plusReady(function() {
- var img_obj = document.querySelector("#canvas_img");
- var canvas_ok = document.querySelector("#canvas_ok");
- var list = plus.webview.currentWebview();
- var userId = plus.storage.getItem('userid');
- var Orientation;
- var angle=0;
- var flag = list.flag;
- img_obj.setAttribute("src", list.imgurl);
- canvas_ok.addEventListener("tap", function() {
- save_img();
- imgOk = document.querySelector("#img_base64").value;
- console.log(imgOk)
- console.log(flag);
- console.log(list.resourceId);
-
- if(flag==1) {
- var urlAdd=baseUrl+"/ajax/images/saveResImg";
- var $data={
- "resourceId":list.resourceId ,
- "base64": imgOk,
- "angle":angle,
- }
- }else {
- var urlAdd=baseUrl + '/ajax/image/saveHead';
- var $data={
- "id": userId,
- "base64": imgOk,
- "angle":angle,
- }
- }
- mui.ajax(urlAdd, {
- data: $data,
- dataType: 'json',
- type: 'post',
- timeout: 10000,
- success: function(data) {
- console.log(JSON.stringify(data));
- console.log(data.success);
- if(data.success) {
- plus.nativeUI.toast("图片上传成功", toastStyle);
- mui.currentWebview.close();
- mui.back();
- if(flag == 0) {
- var Page = plus.webview.getWebviewById('html/proinforupdate.html');
- mui.fire(Page, 'newId');
- var Pa = plus.webview.getWebviewById('html/myaccount.html');
- mui.fire(Pa, 'photoUser');
- } else if(flag==1){
- var Page = plus.webview.getWebviewById('html/proinforupdate.html');
- mui.fire(Page, 'newId');
- var Pa = plus.webview.getWebviewById('resinforupdate.html');
- mui.fire(Pa, 'resourceMess');
- }
- } else {
- plus.nativeUI.toast("图片上传失败", toastStyle);
- }
- },
- error: function(data) {
- plus.nativeUI.toast("服务器链接超时", toastStyle);
- }
- });
- })
- var c_w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
- var c_h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
- var can_obj = document.querySelector("#canvas");
- var img_obj = document.querySelector("#canvas_img");
- var div_obj = document.querySelector("#canvas_div");
- var posX = 0,
- posY = 0;
- var scale = 0;
- var start_X1 = 0,
- start_Y1 = 0,
- start_X2 = 0,
- start_Y2 = 0;
- var start_sqrt = 0;
- var sqrt = 1;
- var left_x = 0,
- left_y = 0;
- img_obj.onload = function() {
- EXIF.getData(img_obj, function() {
-
- EXIF.getAllTags(this);
-
- Orientation = EXIF.getTag(this, 'Orientation');
-
- if(Orientation == 6) {
-
- angle=90;
- var current = 0;
-
-
- current = (current + 90) % 360;
- img_obj.style.transform = 'rotate(' + current + 'deg)';
- can_obj.style.transform = 'rotate(' + current + 'deg)';
- }
-
- if(Orientation == 3) {
-
- angle=180;
- var current = 0;
-
- current = (current + 180) % 360;
- img_obj.style.transform = 'rotate(' + current + 'deg)';
- can_obj.style.transform = 'rotate(' + current + 'deg)';
- }
-
- if(Orientation == 8) {
-
- angle=-90;
- var current = 0;
-
- current = (current - 90) % 360;
- img_obj.style.transform = 'rotate(' + current + 'deg)';
- can_obj.style.transform = 'rotate(' + current + 'deg)';
- }
-
- });
- load();
- }
- function load() {
-
- can_obj.width = c_w - 50;
- can_obj.height = c_w - 50;
- can_obj.style.top = (c_h - c_w - 2) / 2 + "px";
-
-
- autoResizeImage(c_w, c_h, img_obj);
-
- img_obj.style.top = (c_h - img_obj.height - 50) / 2 + "px";
- img_obj.style.left = (c_w - img_obj.width) / 2 + "px";
-
- document.querySelector("#canvas_div").addEventListener('touchstart', touch, false);
- document.querySelector("#canvas_div").addEventListener('touchmove', touch, false);
- document.querySelector("#canvas_div").addEventListener('touchend', touch, false);
- ctx_img = can_obj.getContext("2d");
- var ctx_X = (can_obj.width - img_obj.width) / 2,
- ctx_Y = (can_obj.height - img_obj.height) / 2;
-
- ctx_img.drawImage(img_obj, ctx_X, ctx_Y, img_obj.width, img_obj.height);
-
-
- function touch(event) {
- var event = event || window.event;
- event.preventDefault();
- var mv_x1 = event.changedTouches[0].clientX,
- mv_y1 = event.changedTouches[0].clientY;
- var img_left = img_obj.left,
- img_top = img_obj.top;
- if(event.touches.length == 1) {
- if(event.type == "touchstart") {
- posX = mv_x1 - img_obj.offsetLeft;
-
- posY = mv_y1 - img_obj.offsetTop;
- } else if(event.type == "touchmove") {
- var _x = mv_x1 - posX;
- var _y = mv_y1 - posY;
- img_obj.style.left = _x + "px";
- img_obj.style.top = _y + "px";
- ctx_img.clearRect(0, 0, can_obj.width, can_obj.height);
- console.log(Orientation);
- if(Orientation == 6) {
- ctx_img.drawImage(img_obj, _y - parseFloat(can_obj.style.top) + left_y-120 / 2, -(_x + left_x / 2 + 32), img_obj.width * sqrt, img_obj.height * sqrt);
- } else {
- ctx_img.drawImage(img_obj, _x + left_x / 2 - 25, _y - parseFloat(can_obj.style.top) + left_y / 2, img_obj.width * sqrt, img_obj.height * sqrt);
- }
- }
- }
- if(event.type == "touchstart") {
- scale = img_obj.style.Transform == undefined ? 1 : parseFloat(img_obj.style.Transform.replace(/[^0-9^\.]/g, "")); //获取在手指按下瞬间的放大缩小值(scale),作用,在移动时,记录上次移动的放大缩小值
- start_X1 = event.touches[0].clientX; //记录开始的坐标值,作用:在下次放大缩小后,去掉上次放大或缩小的值
- start_Y1 = event.touches[0].clientY;
- start_X2 = event.touches[1].clientX;
- start_Y2 = event.touches[1].clientY;
- start_sqrt = Math.sqrt((start_X2 - start_X1) * (start_X2 - start_X1) + (start_Y2 - start_Y1) * (start_Y2 - start_Y1)) / 200; //获取在缩放时 当前缩放的值
- } else if(event.type == "touchmove") {
- var mv_x2 = event.touches[1].clientX,
- mv_y2 = event.touches[1].clientY;
- var move_sqrt = Math.sqrt((mv_x2 - mv_x1) * (mv_x2 - mv_x1) + (mv_y2 - mv_y1) * (mv_y2 - mv_y1)) / 200; //动态获取上一次缩放值(随时变更),在下次缩放时减去上一次的值,作用:防止累加之前的缩放
- sqrt = move_sqrt - start_sqrt + scale; //求出缩放值
- img_obj.style.webkitTransform = "scale(" + sqrt + ")"; //设置放大缩小
- img_obj.style.Transform = "scale(" + sqrt + ")";
- ctx_img.clearRect(0, 0, can_obj.width, can_obj.height); //清除画布
- var dImg_left = parseFloat(img_obj.style.left.replace("px", "")),
- dImg_top = parseFloat(img_obj.style.top.replace("px", ""));
- var w = img_obj.width,
- h = img_obj.height,
- sw = w * sqrt,
- sh = h * sqrt;
- left_x = w - sw; //计算 偏移量 设置画布中的X,Y轴 (加偏移量) 注:canvas 原点放大(canvas中图片左上角坐标),css3 scale 中点放大
- left_y = h - sh;
- ctx_img.drawImage(img_obj, dImg_left + left_x / 2 - 25, dImg_top - parseFloat(can_obj.style.top.replace("px", "")) + left_y / 2, sw, sh); //画布内图片重置
- }
- }*/
- }
- }
- function save_img() {
- var base64 = can_obj.toDataURL("image/jpeg", 1);
- var subbase = base64.substring(22);
- document.querySelector("#img_base64").value = subbase;
- }
- function autoResizeImage(maxWidth, maxHeight, objImg) {
-
-
-
-
-
- var w = objImg.width;
- var h = objImg.height;
-
-
- wRatio = maxWidth / w;
- hRatio = maxHeight / h;
- if(w > maxWidth) {
- if(w > h) {
- objImg.height = maxWidth - 50;
-
- } else {
- objImg.width = c_w - 46;
-
-
- }
- } else {
- objImg.width = maxWidth - 50;
- objImg.height = maxWidth - 50;
- }
-
- objImg.width=maxWidth-50;
- objImg.height=maxWidth-50;
- alert('2')
- }
- if(w > maxWidth && h < maxHeight){
- objImg.width=maxWidth-50;
- objImg.height=maxWidth-50;
- alert('3')
- }*/
-
- return;
- alert('1')
- }
- if (maxWidth == 0 && maxHeight == 0) {
- ratio = 1;
- alert('2')
- } else if (maxWidth == 0) {
- if (hRatio < 1) {
- ratio = hRatio;
- alert('3')
- }
- } else if (maxHeight == 0) {
- if (wRatio < 1) {
- ratio = wRatio;
- alert('4')
- }
- } else if (wRatio < 1 || hRatio < 1) {
- ratio = (wRatio <= hRatio ? wRatio : hRatio);
- alert('5')
- } else {
- ratio = (wRatio <= hRatio ? wRatio : hRatio) - Math.floor(wRatio <= hRatio ? wRatio : hRatio);
- alert('6')
- }
- if (ratio < 1) {
- if (ratio < 0.5 && w < maxWidth && h < maxHeight) {
- ratio = 1 - ratio;
- }
- w = w * ratio;
- h = h * ratio;
- alert('7')
- objImg.width=maxWidth-45;
- objImg.height=maxHeight;
- }*/
-
-
- }
- })
|