重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
主流的前端jQuery 图像裁剪插件有Jcrop和CropBox,前者是将原图和需要裁剪的参数(裁剪的各点坐标,旋转角度等)传到后台,然后由后台完成实际的裁剪和后续操作。
为企业提供成都网站制作、成都网站设计、网站优化、营销型网站、竞价托管、品牌运营等营销获客服务。创新互联建站拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!
CropBox实现功能相对较少,但操作更简单,它的原理是:
将裁减后的图片通过base64编码,然后转化为blob格式发送到服务器,服务器完成解码即可,官网介绍可以看github上的说明和Demo
核心js函数只有两个:
getDataURL 将裁剪后的图片简单以base64编码后的结果,用于实时预览,当然也可以将它直接传到服务器,然后解码为png格式
getBlob 上传图片为Blob格式
首先贴出两个函数的源码:
getDataURL: function ()
{
var width = this.thumbBox.width(),
height = this.thumbBox.height(),
canvas = document.createElement("canvas"),
dim = el.css('background-position').split(' '),
size = el.css('background-size').split(' '),
dx = parseInt(dim[0]) - el.width()/2 + width/2,
dy = parseInt(dim[1]) - el.height()/2 + height/2,
dw = parseInt(size[0]),
dh = parseInt(size[1]),
sh = parseInt(this.image.height),
sw = parseInt(this.image.width);
canvas.width = width;
canvas.height = height;
var context = canvas.getContext("2d");
context.drawImage(this.image, 0, 0, sw, sh, dx, dy, dw, dh);
var imageData = canvas.toDataURL('image/png');
return imageData;
},
getBlob: function()
{
var imageData = this.getDataURL();
var b64 = imageData.replace('data:image/png;base64,','');
var binary = atob(b64);
var array = [];
for (var i = 0; i binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: 'image/png'});
},
[img]JQUERY单独是做不到的 只能配合服务器端进行
JQUERY只是前台做到友好的界面而已 选中的座标传到后台 后台在处理
所以。。。。。你要告诉我们 你的后台是什么语言
自己写吧 我从来不用网上下载的 除了超出能力太多的
原理很简单的 就是获取座标传到后台 然后PHP根据座标进行剪裁就可以了
'plugin/uploadify/selectHead.jpg'路径错误..前面加跟斜杠
'/plugin/uploadify/selectHead.jpg'
我正在弄这个东西、对了哥们请问一下的这个'buttonText': '选择头像',
怎么可以显示汉字呢。我打汉字显示的是乱码。我用的2.1.4。。。。是版本不同还是你采用了其他方法?求教一下
这个小插件多的是,肯定不需要的了。请君放心使用,我不会p小孩的!-_-
图像裁切功能,帝国cms默认是不带的,需要自己用jquery来实现
自己在网上找个jquery裁切插件就OK了
这种最好用jquery插件,几行代码调用就可以了。
baidu 一下 jquery jcrop