公司需要做一个类似开心网的头像裁剪功能,发现cropzoom可以实现一模一样的效果,我在这里把使用cropzoom做头像裁剪的一个难点写出来,希望能帮到大家
http://www.helloweba.com/view-blog-51.html 这里有使用cropzoom做图片裁剪的完整的demo,在这里我就不多说了,我只在这里把这个例子中没有告诉我们的说一下,
前提:
cropzoom = $('#cropzoom_container').cropzoom({
width: cropzoom_width,
height: cropzoom_height,
bgColor: '#ccc',
enableRotation: true, //是否可旋转
enableZoom: true, //是否放大、缩小、变焦
zoomSteps:10,
rotationSteps:10,
selector: {
showPositionsOnDrag:true, //显示 选择框的左上角的坐标:x:175px,Y:80px
showDimetionsOnDrag:true, //显示 选择框的的大小
centered: true, //旋转框是否存在图片的中央
bgInfoLayer:'#fff',
borderColor: 'blue',
borderColorHover: 'red',
x:0,
y:0,
w:100,
h:100
},
image: {
source: msg,
width: 260,
height: 340,
minZoom: 30,
maxZoom: 150
}
});
1、图片被的缩放后的尺寸:
var imageZoomW = cropzoom.data('image').w; //图像缩放后的宽
var imageZoomH = cropzoom.data('image').h;//图像缩放后的高
2、选择框的坐标:
var imageX = cropzoom.data('selector').x; //图像x坐标
var imageY = cropzoom.data('selector').y; //图像Y坐标
var imageW = cropzoom.data('selector').w; //图像宽
var imageH = cropzoom.data('selector').h; //图像高
3、开始以为拿到了图片缩放后的尺寸,和 选择框的尺寸,以及选择框的左顶点的坐标就可以拿到准确的裁剪出图片了,但是按照这些数据裁剪出来的图片和实际选择的页面的有很大的偏差,找了很久终于找到了问题的症结:
cropzoom.data('selector').x 和var imageY = cropzoom.data('selector').y拿到的是 选择框selector相对于 cropzoom的边框的坐标,但是实际上应该取选择框相对于图片的最左边和最上面的距离才对,修改代码为:
var imageX = cropzoom.data('selector').x; //图像x坐标
var imageY = cropzoom.data('selector').y; //图像Y坐标
var imageW = cropzoom.data('selector').w; //图像宽
var imageH = cropzoom.data('selector').h; //图像高
var imageZoomW = cropzoom.data('image').w; //图像缩放后的宽
var imageZoomH = cropzoom.data('image').h;//图像缩放后的高
//如果cropzoom比图片的的缩放宽度要宽
if(cropzoom_width >imageZoomW ){
imageX = imageX - ((cropzoom_width -imageZoomW )/2);
//如果cropzoom比图片的的缩放宽度要窄
}else if(cropzoom_width < imageZoomW ){
imageX = imageX + ((imageZoomW -cropzoom_width )/2);
}
//如果cropzoom比图片的的缩放宽度要高
if(cropzoom_height > imageZoomH ){
imageY = imageY - ((cropzoom_height -imageZoomH )/2);
//如果cropzoom比图片的的缩放宽度要高
}else if(cropzoom_height < imageZoomH ){
imageY = imageY + ((imageZoomH -cropzoom_height )/2);
}
alert("imageX: "+imageX + " imageY: "+ imageY + " imageW: "+ imageW + "imageH: "+imageH );
alert("W:" + imageZoomW + " H:" + imageZoomH);
分享到:
相关推荐
Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像...
微信小程序上传头像后对图片进行裁剪的功能,这是必要的核心代码,放在组件文件夹中就可以使用
cropzoom在线上传图片裁剪插件,非常好用。在做上传头像功能时,也许会帮上你哦。。。
unity 实现类似 wx 头像、图片的裁剪功能
说到QQ头像上传大家并不陌生,您可以将一张大的图片上传并裁剪、拖放等操作进行编辑,从而实现自己想要的头像效果!而本次提供的为jQuery网页版图片裁剪的效果,本例主要是通过css的clip来裁剪图片可视区域,拖动...
php头像裁剪功能源代码实现,页面无刷新的用json方式显示无数上传显示。
在android的开发过程中,经常遇到设置用户头像以及裁剪图像大小的功能。昨天我遇到了设置用户头像的功能,开始不知道怎么搞,在技术群里问也没人回答,就研究了微信用户设置头像的功能,了解到用户设置图像的过程,...
小程序轻便原生的头像裁剪功能,直接引用即可,可以自定义裁剪宽高
头像裁剪demo仿QQ头像裁剪直接下载可以运行
调用系统自带相机或者系统图库进行拍照图片的选择(完美解决大图内存溢出问题,亲测小米华为拍出的十几M图片均可使用,完美解决三星等部分手机拍照后图片自动旋转问题),裁剪后可自定义压缩保存质量,可自定义裁剪...
该功能主要实现的是Android调用系统头像裁剪界面,可以缩放,比较简单
mvc中上传头像及裁剪(AjaxFileUploader+cropzoom),采用AjaxFileUploader异步上传,采用cropzoom对图片进行裁剪
flash+php头像裁剪上传.rarflash+php头像裁剪上传.rarflash+php头像裁剪上传.rar
最近看到不少朋友都想要js写的头像裁剪上传的代码,所以自己结合插件研究了一下写了一个,不足之处望大家指正
qq自定义头像裁剪,可以直接复制到你的工程里面用,效果很好
Android高仿微信头像裁剪
一个jsp版的上传头像裁剪功能,给大家分享一下哦。分数有点多哦!
phonegap头像裁剪上传,http://blog.csdn.net/zhuangzi111/article/details/34105231
android相册选择,头像裁剪,圆形图片处理,功能强大,欢迎下载参考
android 仿微信头像裁剪,中间的裁剪框 是圆形或者方形,支持手势双击缩放,多手指移动缩放,移动图片