公司需要做一个类似开心网的头像裁剪功能,发现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);
分享到:
相关推荐
总结起来,微信小程序中的头像裁剪功能通过`wx.chooseImage`接口选取图片,结合`we-cropper`组件进行裁剪操作,实现了用户友好的头像上传功能。`we-cropper`组件的强大功能和易用性使得在微信小程序中实现这一功能变...
《cropzoom_jQuery插件:实现高效上传头像裁剪功能》 在现代网页开发中,用户界面的交互性越来越重要,特别是在涉及到个人形象展示的环节,如上传头像。`cropzoom`是一款专为jQuery设计的插件,它允许用户在上传...
总结起来,CropZoom是一个适用于头像图片裁剪的JavaScript插件,它利用Canvas技术和jQuery实现交互式的裁剪功能。开发者可以轻松地将其整合到自己的项目中,提供用户友好的头像上传体验。通过了解其工作原理和使用...
Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像裁剪功能(含Flex、Flash、js、JQuery版)Java和C#的实现图片头像...
unity 实现类似 wx 头像、图片的裁剪功能
在IT行业中,头像裁剪是一项常见的功能,尤其在社交应用和用户个人资料设置中非常常见。本项目“头像裁剪demo”是模仿QQ头像裁剪功能的一个示例,提供了一个可以直接下载并运行的代码实现。这个demo旨在帮助开发者...
在Android开发中,头像裁剪功能是一项常见的需求,它允许用户从相册选择一张图片,然后通过裁剪工具调整并选定需要展示的部分作为头像。这个功能在社交应用、个人资料设置等场景中尤为常见。本文将深入探讨如何在...
总结起来,在ASP.NET MVC项目中实现头像上传和裁剪,需要结合AjaxFileUploader的异步上传功能和cropzoom的图片裁剪功能。前端负责用户交互和数据传递,后端负责文件处理和存储。这种组合可以提供流畅的用户体验,...
QQ自定义头像裁剪是一项常见的功能,尤其在社交应用中非常普遍,用户可以自由选择并裁剪图片作为自己的头像。在这个过程中,涉及到的技术主要包括图像处理、图形用户界面(GUI)设计以及可能的异步操作。下面我们将...
在Android开发中,为了提供类似微信的用户体验,经常会遇到实现头像裁剪功能的需求。"Android 仿微信头像裁剪"是一个常见的实践项目,它允许用户选择一张图片,并通过手势操作来裁剪出合适的头像。这个项目的核心是...
说到QQ头像上传大家并不陌生,您可以将一张大的图片上传并裁剪、拖放等操作进行编辑,从而实现自己想要的头像效果!而本次提供的为jQuery网页版图片裁剪的效果,本例主要是通过css的clip来裁剪图片可视区域,拖动...
在微信小程序开发中,用户头像的选取与裁剪是一项常见的功能,特别是在社交类或个人中心设置类的应用中。"小程序头像裁剪(原生)"是一个专门为小程序设计的轻量级、高度可定制化的头像裁剪解决方案。这个功能使得...
在IT行业中,头像裁剪上传功能是许多网站和应用中的常见需求,它允许用户自定义选择并裁剪图片作为个人头像。本项目利用PHP和jQuery技术实现了一个头像裁剪上传的功能,同时结合了Smarty模板引擎,使得前端与后端的...
在Android开发中,头像裁剪是常见的功能需求,用户可能需要从相册选择一张照片,然后进行裁剪以适应应用中的头像显示。这里我们将详细介绍三种不同的方式来实现这一功能,包括方形和圆形的裁剪。 1. 使用Android...
php头像裁剪功能源代码实现,页面无刷新的用json方式显示无数上传显示。
微信作为中国最流行的社交应用之一,其头像裁剪功能的设计和用户体验备受开发者关注。接下来,我们将深入探讨如何在Android中构建这样一个功能。 首先,我们要创建一个自定义的布局来展示原始图片并允许用户进行...
在IT行业中,开发一个“上传头像裁剪,拍照,含进度条功能”的应用涉及到多个技术领域,包括图像处理、前端交互以及用户界面设计。以下是对这些知识点的详细阐述: 首先,**上传图片**是此类功能的基础。在前端,这...
在android的开发过程中,经常遇到设置用户头像以及裁剪图像大小的功能。昨天我遇到了设置用户头像的功能,开始不知道怎么搞,在技术群里问也没人回答,就研究了微信用户设置头像的功能,了解到用户设置图像的过程,...
PhoneGap头像裁剪上传是移动应用开发中的一个常见需求,尤其在社交、个人资料设置等场景下。...本知识点主要围绕如何在PhoneGap项目中实现...通过研究这些文件,你可以更好地理解和实现PhoneGap应用中的头像裁剪上传功能。
总结,"一款头像裁剪jquery插件"是JavaScript开发中的利器,尤其在图片展示处理领域。它结合了jQuery的易用性和HTML5的先进特性,为开发者提供了高效、灵活的头像裁剪解决方案。通过熟练掌握和运用这款插件,可以极...