`
圣诞王子
  • 浏览: 84584 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

利用jquery插件的图片剪切上传功能

阅读更多

花了一天多的时间终于搞好了,贴出来,分享一下

 

为了使用户能自定义个人头像,需要提供一个对上传图片的截图功能,当前很多网站特别是SNS类网站都提供这样的功能,非常实用。主要实现的形式有两种,一种是flash截图,另一种就是javascript截图,两种方法各有秋千,关于Flash截图可以参考一下UcHome程序中头像上传功能,但这不是我要讨论的话题,我这里主要是如何实现javascript截图,利用jQuery的imgAreaSelect插件,轻松实现自定义头像[avatar]javascript截图功能

 

首先,利用的是jquery上传剪切插件imgAreaSelect

官方下载地址:http://odyniec.net/projects/imgareaselect/ 

加压后里面有两个js文件

一个是jquery.min.js  另一个是 jquery.imgareaselect.js

将这两个js文件引入到项目中去

 

其次,在文件中要加入javascript代码

 

//预览显示

    function preview(img, selection){ 

   var scaleX = 100 / (selection.width || 1); 

   var scaleY = 100 / (selection.height || 1); 

    

   //动态小头像 获取当前选中框的宽度,高度,左边框,右边框 

   $('#view').css({                          //view是预览图像的id

   width: Math.round(scaleX * 300) + 'px', 

   height: Math.round(scaleY * 220) + 'px', 

   marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', 

   marginTop: '-' + Math.round(scaleY * selection.y1) + 'px' 

   }); 

    } 

 

    //加载小头像 

    $(document).ready(function () { 

   $('<div><img id="view" src="bee.jpg" style="position: relative;" /></div>') 

   .css({ 

   float: 'left', 

   position: 'relative', 

   overflow: 'hidden', 

   width: '100px', 

   height: '100px' 

   }) 

   .insertAfter('#biuuu'); //把新建元素放到 #biuuu 之后

   //.insertAfter($('#biuuu')); //把新建元素放到 #biuuu 之后

    }); 

 

    //初始化加载 

    $(window).load(function () { 

   $('#biuuu').imgAreaSelect({ 

   aspectRatio: '1:1',  //截取比例

   //show:true,

   //resizable:false, //是否可调整大小

   autoHide: false,//选择框选择完毕是否自己取消 

   key:true, //是否启用键盘,默认为false

   //x1: 75, y1: 30, x2: 225, y2: 180, //需要处理的区域,原始的

   //x1:左上角x轴坐标 y1:左上角y轴坐标 x2:右下角x轴坐标 y2:右下角y轴坐标

   keys: { arrows: 1, ctrl: 5, shift: 'resize' }, //调整像素大小

   

   //onInit: function(img, selection) { ias.setSelection(100, 50, 250, 150, true); ias.update(); }, //设置初始函数 画出选择框 

   onSelectChange: preview , //选框移动时触发的事件

   onSelectEnd: getLocation  //选框结束时触发的事件

   

   });

});

 

上述的详细参数配置在官网上也有,自己去查阅

 

最后,在文件中使用

<div>

    <img id="biuuu" src="bee.jpg" title="biuuu" width="320px" height="220px" style="float: left; margin-right: 10px;"/> 

    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

</div>

 

说明:1.利用插件很容易做出来剪切预览效果,可是让我纠结了半天是:生成的预览图如何上传呀,在网上找了一段代码,发现只要是上传图片的大小不同,那么生成的图也不同,后来想想是缩放比例的问题。也就是说要实际图像的大小和在页面显示的大小是不一样的,被缩放了,那么在后台上传剪切图像的时候,我们必须要还原原来图像的大小,并把要剪切的部分也相应的要放大或缩小

代码:

System.Drawing.Image sourceImage = System.Drawing.Image.FromFile(Server.MapPath("bee.jpg"));

        int height = Convert.ToInt32(sourceImage.Height);//获取原始图像的高

        int width = Convert.ToInt32(sourceImage.Width);//获取原始图像的宽度

 

        x1 = x1*(width/320);//根据实际尺寸缩放

        x2 = x2*(width/320);

 

        y1 = y1*(height/240);

        y2 = y2*(height/240);

 

 

未解决动态头像的功能,这是插件本身的问题

 

  • uploadPhoto.rar (534.3 KB)
  • 描述: 完整DEMO(asp.net 版本)
  • 下载次数: 1126
分享到:
评论
4 楼 xiaobadi 2012-04-16  
不错~~~~~~~~~~
3 楼 superxielei 2012-04-13  
插件不错。
2 楼 guofc201007 2011-10-13  
同求,我用的java开发,不知道服务端怎么获取到这个文件
1 楼 allstar2012 2011-08-30  
麻烦给说说 裁剪后的图像如何保存为图片呢 小弟我不胜感激

相关推荐

    JQuery 及插件实现图片剪切分割上传服务器

    在图片剪切上传的场景中,jQuery主要负责处理用户的交互事件,如点击、拖动等,并更新图片的裁剪区域。 `jquery.imagecropper.js`是一个基于jQuery的图片裁剪插件,它允许用户在预览图上自由选择裁剪区域。该插件...

    jQuery-photoClip-master 图片上传剪切

    【jQuery-photoClip-master 图片上传剪切】是一个基于jQuery的图片裁剪插件,主要用于Web开发中的图片商城剪切功能。这个项目集成了JavaScript技术,提供了便捷的图片处理能力,让用户在网页上能够自由地裁剪上传的...

    jquery上传图片并剪切

    在这个场景中,我们将重点讨论如何利用jQuery来处理图片上传以及与服务器的交互,同时结合图片剪切技术来提供用户友好的图像编辑功能。 首先,让我们来看看jQuery如何实现图片上传。在HTML部分,通常会有一个`...

    JQuery 图片剪切分割上传 - ImageCropper

    - **上传支持**:ImageCropper 集成了上传功能,可以将剪切或分割后的图片直接上传到服务器,简化了整个处理流程。 ### 3. 使用步骤 1. **引入依赖**:首先需要在页面中引入 jQuery 和 ImageCropper 的相关文件,...

    jsp+jquery(jcrop)实现的图片预览剪切上传

    总的来说,`jsp+jquery(jcrop)实现的图片预览剪切上传`项目是一个实用的示例,它展示了如何利用现有技术栈解决实际问题。开发者可以在此基础上进行定制,适应各种不同的图片处理需求,例如添加更多图片格式的支持...

    图片上传带裁剪功能Jquery插件

    首先,标题中的“图片上传带裁剪功能Jquery插件”指的是一个JavaScript库,它利用jQuery框架来实现图片的上传和裁剪操作。jQuery是一个广泛使用的JavaScript库,简化了DOM操作、事件处理、动画以及Ajax交互等任务。...

    jquery+jsp+smartUpload图片剪切上传

    标题中的“jquery+jsp+smartUpload图片剪切上传”是一个基于jQuery、JSP和SmartUpload技术实现的图片裁剪并上传的功能。这个功能通常用于网页上的图像处理,允许用户在选择图片后进行预览和裁剪,然后将裁剪后的图片...

    jquery图片上传前预览 无需上传至服务器

    在IT行业中,尤其是在Web开发领域,用户经常需要上传图片,而提供一个图片上传前的预览功能能够极大地提升用户体验。这个“jquery图片上传...通过理解并掌握这些知识点,开发者可以创建更高效、更友好的图片上传功能。

    jquery 图片剪切

    在IT行业中,jQuery图片剪切是一项常见的前端技术,用于实现用户自定义裁剪图片的功能,广泛应用于头像上传、产品图片处理等场景。本话题主要围绕jQuery库中的Jcrop插件,结合后台Java进行详细讨论。 jQuery是一个...

    jquery上传剪切

    总的来说,这个【jQuery上传剪切】方案利用jQuery简化了前端的交互,结合PHP的图像处理能力,提供了一个完整的图片上传和裁剪解决方案。开发者可以根据自己的项目需求对这些文件进行调整和优化。

    struts2结合jquery剪切图片

    在描述中提到的"图片剪切"功能,主要是指用户可以上传一张图片,并在前端界面上选择图片的某一部分进行裁剪,然后将裁剪后的图像数据发送到服务器进行处理和保存。这一过程通常包括以下步骤: 1. **图片上传**:...

    jquery实现头像剪切

    通过以上步骤,我们可以利用jQuery和`cropper.js`插件轻松实现头像剪切功能,提供给用户一个直观、易用的裁剪界面。这不仅提高了用户参与度,也提升了网站或应用的专业性。在实际开发中,还可以根据需求进行定制,...

    jQuery头像图片裁剪尺寸插件

    这通常通过CSS和JavaScript实现,利用jQuery来操作DOM元素的位置和尺寸。 3. 操作工具:插件通常包含一套工具,如移动、缩放、旋转、翻转和重置。这些功能可以通过监听鼠标或触摸事件,结合数学计算来更新裁剪框的...

    jquery在线上传头像图片裁剪插件

    利用jQuery,开发者可以编写出更少的代码实现更多的功能,提高开发效率。 在这个插件中,用户可以通过简单的拖放或点击选择按钮来上传图片。上传后,图片会显示在一个预览区域,用户可以使用提供的裁剪工具进行调整...

    Java 实现头像的剪切和上传功能

    在Java开发中,头像的剪切...利用jQuery ImgCrop库可以简化前端剪切操作,而Java提供的图像处理API则可以帮助我们在服务器端完成复杂的图片操作。在开发过程中,注意安全性、性能和用户体验,是打造高质量功能的关键。

    基于jquery/cropper插件裁剪头像demo

    本示例“基于jquery/cropper插件裁剪头像demo”提供了一个使用jQuery和Cropper.js插件实现头像裁剪功能的实例。下面我们将详细介绍这个插件的工作原理、使用方法以及它在实际项目中的应用。 Cropper.js是一个轻量级...

    h5图片剪切、缩放、旋转、预览

    本文将深入探讨基于H5技术实现的图片处理功能,特别是在PC和移动端的实现方式,以及如何使用jQuery图片剪切上传插件来完成这些任务。 标题提及的“h5图片剪切、缩放、旋转、预览”是指利用HTML5(H5)技术来实现的...

    struts2加jquery加Jcrop实现头像剪切上传项目版(添加jar包部署就可以运行)

    在这个项目中,我们主要关注如何利用这些技术实现一个头像剪切并上传的功能。 首先,Struts2是一个基于MVC设计模式的Java Web框架,它提供了一种组织应用程序的方式,使得开发者可以更加专注于业务逻辑,而不是底层...

    Asp.Net剪切图片

    本项目利用了jQuery库中的Jcrop插件,它是一个强大的JavaScript图片裁剪工具,可以很好地兼容各种主流浏览器,包括IE、Firefox、Chrome、Safari等。Jcrop通过与Asp.Net后端代码的交互,提供了用户友好的图片裁剪、...

Global site tag (gtag.js) - Google Analytics