//check for selected crop region

functioncheckForm() {if (parseInt($('#w').val()))return true;

$('.error').html('请先选择图片,并且截图').show();return false;

}//update info by cropping (onChange and onSelect events handler)

var oImage =undefined;var blob =undefined;var jcrop_api =undefined;functionupdateInfo(e) {/*$('#x').val(e.x);

$('#y').val(e.y);

$('#x2').val(e.x2);

$('#y2').val(e.y2);

$('#w').val(e.w);

$('#h').val(e.h);*/

if(parseInt(e.w) > 0){//计算预览区域图片缩放的比例,通过计算显示区域的宽度(与高度)与剪裁的宽度(与高度)之比得到

var rx = $("#preview_box").width() /e.w;var ry = $("#preview_box").height() /e.h;//通过比例值控制图片的样式与显示

$("#crop_preview").css({

width:Math.round(rx* $("#preview").width()) + "px", //预览图片宽度为计算比例值与原图片宽度的乘积

height:Math.round(rx * $("#preview").height()) + "px", //预览图片高度为计算比例值与原图片高度的乘积

marginLeft:"-" + Math.round(rx * e.x) + "px",

marginTop:"-" + Math.round(ry * e.y) + "px"});//var canvas=$('#previewCanvas')[0];

//展示长度与实际长度的比例

var xp = e.x/$("#preview").width();

var yp = e.y/$("#preview").height();

//var canvas = $('')[0],

/*$('#previewCanvas').css({

width:Math.round(oImage.width/rx) + "px",

height:Math.round(oImage.height/ry) + "px"

});*///通过比例来计算实际图片所需截取的尺寸

$('#x').val(Math.round(oImage.width*xp));

$('#y').val(Math.round(oImage.height*yp));

$('#w').val(Math.round(oImage.width/rx));

$('#h').val(Math.round(oImage.height/ry));

//被注释掉的代码是用canvas画图的,不过我这里接下的涂油一点问题所以没有采用,如果又能解决的话一定要通知我

/*ctx=canvas.getContext('2d');

ctx.drawImage(oImage,Math.round(oImage.width*xp),Math.round(oImage.height*yp),Math.round(oImage.width/rx),Math.round(oImage.height/ry),0,0,Math.round(oImage.width/rx),Math.round(oImage.height/ry));

//console.trace(ctx);

//ctx.drawImage(oImage,Math.round(oImage.width*xp),Math.round(oImage.height*yp),1000,1000,0,0,1000,1000);

var data=canvas.toDataURL();

// dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了

data=data.split(',')[1];

data=window.atob(data);

var ia = new Uint8Array(data.length);

for (var i = 0; i < data.length; i++) {

ia[i] = data.charCodeAt(i);

};

// canvas.toDataURL 返回的默认格式就是 image/png

blob=new Blob([ia], {type:"image/png"});*/

//$(document.body).append(canvas);

}

};//clear info by cropping (onRelease event handler)

functionclearInfo() {

$('.info #w').val('');

$('.info #h').val('');

}functionfileSelectHandler() {//清空原有图片路径

$("#partyheadUrl").val("");//get selected file

var oFile = $('#image_file')[0].files[0];//hide all errors

$('.error').hide();//check for image type (jpg and png are allowed)

var rFilter = /^(image\/jpeg|image\/png|image\/jpg)$/i;if (!rFilter.test(oFile.type)) {

$('.error').html('请选择jpg、jpeg或png格式的图片').show();return;

}//check for file size

/*if (oFile.size > 1000 * 1024) {

$('.error').html('请上传小于1M的图片').show();

return;

}*/

//preview element

oImage = document.getElementById('preview');var crop_preview = document.getElementById('crop_preview');//prepare HTML5 FileReader

var oReader = newFileReader();

oReader.οnlοad= function(e) {//destroy Jcrop if it is existed在上传文件变化时一定要销毁jcrop_api否则$("#preview")展示图片不会变

if (typeof jcrop_api != 'undefined')

jcrop_api.destroy();//e.target.result contains the DataURL which we can use as a source of the image

oImage.src =e.target.result;

crop_preview.src=e.target.result;

oImage.οnlοad= function() { //onload event handler

//display step 2

$('.step2').fadeIn(500);//display some basic image info

var sResultFileSize =bytesToSize(oFile.size);

$('#filesize').val(sResultFileSize);

$('#filetype').val(oFile.type);

$('#filedim').val(oImage.naturalWidth + ' x ' +oImage.naturalHeight);//Create variables (in this scope) to hold the Jcrop API and image size

varboundx, boundy;//initialize Jcrop

$('#preview').Jcrop({

minSize: [32, 32], //min crop size

aspectRatio: 1, //keep aspect ratio 1:1

bgFade: true, //use fade effect

bgOpacity: .3, //fade opacity

onChange: updateInfo,

onSelect: updateInfo,

onRelease: clearInfo

},function() {//use the Jcrop API to get the real image size

var bounds = this.getBounds();

boundx= bounds[0];

boundy= bounds[1];//Store the Jcrop API in the jcrop_api variable

jcrop_api = this;

jcrop_api.setSelect([50,50,150,150]);

});

};

};//read selected file as DataURL

oReader.readAsDataURL(oFile);

}

//后台返回图片地址functionfileImport_callBack(filePath){ parent.$("#partyheadUrl").val(filePath);

parent.$("#logoPhoto").attr("src",filePath);

closeDialog("dialog");

}

jcrop java_jcrop截图并上传服务器 + java相关推荐

  1. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  2. java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...

    我在上一篇文章SSM+Layui实现文件上传服务器中展示了如何将图片上传至服务器,保存到SQL server数据库中,本篇文章主要讲的是将图片上传到服务器上,保存在服务器的磁盘上,然后将图片路径保存到 ...

  3. Unity进行桌面截图并上传到服务器记录

    Unity进行桌面截图并上传到服务器 private string uplaodURL = "http://xxx.xxx.xxx.xxx/UploadImage.aspx"; v ...

  4. ios java 图片上传到服务器,iOS 图片上传服务器

    最近搞图片上传,折腾了一个星期终于做出来了,网上搜出来的方法几乎都是好几年前的,试了好多都不能用,此次把代码公布出来供大家参考. 注:部分代码是后台写的,此方法没用到第三方库. 1.图片保存到本地同时 ...

  5. Java从本地扫描文件上传服务器

    项目说明: 本代码只是一个简单的工具类,自己做的整合,采用sftp方式进行上传文件,如有错误,望指正!!! 功能: 1.读取本地指定文件夹的文件,进行扫描读取 2.将读取的文件上传至指定服务器的指定文 ...

  6. 大文件上传服务器:支持超大文件HTTP断点续传的实现办法

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/ababab12345/a ...

  7. java 存储png文件_vue图片上传及java存储图片(亲测可用)

    1.前言 在使用elementui的upload组件时,我一直无法做到上传的图片和其他数据一起提交.单纯的上传文件,java的存储图片的方式也有局限性. 我知道的后端保存图片有两种方式:一种是直接存储 ...

  8. 大文件上传服务器、支持超大文件HTTP断点续传实践总结

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/ababab12345/ article/details/80490621 最近由于笔者所在的研发集团产品需要,需要支持高性能的 ...

  9. ajax上传 java_使用Ajax进行文件与其他参数的上传功能(java开发)

    文件上传: 记得前一段时间,为了研究Ajax文件上传,找了很多资料,在网上看到的大部分是form表单的方式提交文件,对于Ajax方式提交文件并且也要提交表单中其他数据,发现提及的并不是很多,后来在同事 ...

最新文章

  1. 向访客和爬虫显示不同的内容
  2. python视频抽帧 后 前端javascript如何显示_使用OpenCV编写一个可以定时抽帧的脚本...
  3. Nature撤稿!三年前微软在量子计算上的巨大胜利终究是个错误
  4. 动态语言,静态类型,强类型定义语言,弱类型定义语言,
  5. Java 泛型背后的原理是什么?
  6. oracle服务器环境建立,oracle 透明网关环境的建立
  7. R语言:rep函数解析
  8. eclipse svn插件 不能正常显示属性的解决办法
  9. 吴恩达《Machine Learning》精炼笔记 12:大规模机器学习和图片文字识别 OCR
  10. Matchmaker
  11. 2020年十大消费新机遇
  12. react-native中的动画
  13. git 本地项目关联线上仓库报错 failed to push some refs to “XXX”
  14. poj 2153 Rank List
  15. 应用程序的SQL查询原理
  16. 关于Linux 系统程序(进程)自动升级的方法
  17. 远程唤醒、WOL、Magic_Packet【转】
  18. character在mysql什么类型_character是什么字段类型
  19. script加密解密工具下载
  20. 以汨罗命名的鸿蒙网,汨罗千年古镇“新市”考

热门文章

  1. 用Python执行Linux命令
  2. FastDFS的Tracker及Storage节点添加及删除
  3. Kafka学习-----Kafka消费者Consumer:消费方式,分区分配策略,RangeRoundRobin
  4. 炫界 (667) -(回应骑两小)_适合做签名的文艺小句子 适合做签名的文艺小句
  5. 计算机音乐最早出现,电脑音乐的发展历程与趋势
  6. 计算机配置的说明,如何选择计算机配置选择计算机配置方法[详细说明]
  7. python clr createinstance_Python System.Byte方法代码示例
  8. 对比微博和小红书哪个引流好?点击进来给大家免费分享
  9. JavaCV - 毛玻璃特效
  10. 性能测试、负载测试、压力测试、稳定性测试?