上传个人头像的功能:用户在上传自己的照片后,由于照片尺寸不符合网站的要求,要求用户对照片进行裁剪,最终根据用户裁剪的尺寸生成头像。

用户可以对上传的图片进行自由缩放、裁剪,使之符合彩信图片的大小。

CropZoom特性

CropZoom是由Gaston Robledo写的一个功能非常强大的jquery图片裁剪插件,它具有以下主要特性:

1、任意放大和缩小图片

2、360度旋转照片

3、自由拖动,自定义选择区样式

4、及时显示裁剪后的照片,可以与后台程序PHP、JAVA、Asp.net等通信

5、兼容IE6+,fireFox2+,Opera,Safria

使用CropZoom

该插件需要JQuery UI的ui.droppable, ui.resizable, ui.slider支持。因此在使用之前先要准备相关文件。jquery.js可以在jquery官方网站上下载。JQuery UI可以在官方下载。

1、导入JS和CSS样式。

 
<link href="css/jquery-ui-1.8.custom.css" rel="Stylesheet" type="text/css" />  
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script> 
<script type="text/javascript" src="js/jquery.cropzoom.js"></script> 

2、构建HTML结构代码。

 
<div class="crop"> 
   <div id="cropzoom_container"></div> 
   <div id="preview"><img id="generated" src="tmp/head.gif"  /></div> 
   <div class="page_btn"> 
      <input type="button" class="btn" id="crop" value="剪切照片" /> 
      <input type="button" class="btn" id="restore" value="照片复位" /> 
   </div> 
   <div class="clear"></div> 
</div> 

这部分的样式大家可以自己定制,也可以参照月光光写的DEMO。

3、调用CropZoom插件。

 
$(function() { 
     var cropzoom = $('#cropzoom_container').cropzoom({ 
          width: 500, 
          height: 360, 
          bgColor: '#ccc', 
          enableRotation: true, 
          enableZoom: true, 
          selector: { 
               w:150, 
               h:200, 
               centered: true, 
               bgInfoLayer:'#fff', 
               borderColor: 'blue', 
               borderColorHover: 'yellow' 
           }, 
           image: { 
               source: 'photo.jpg', 
               width: 450, 
               height: 800, 
               minZoom: 30, 
               maxZoom: 150 
            } 
      }); 
     $("#crop").click(function(){ 
          cropzoom.send('crop_img.php', 'POST', {}, function(imgRet) { 
               $("#generated").attr("src", imgRet); 
          });                
     }); 
     $("#restore").click(function(){ 
          $("#generated").attr("src", "tmp/head.gif"); 
          cropzoom.restore();                       
     }); 
}); 

CropZoom插件主要参数和方法一览表

参数/方法 描述 默认值
基本
width 整个图片容器的宽度 640
Height 整个图片容器的高度 480
bgColor 容器的背景色 #000
overlayColor 当拖动选区(选择区域)时容器的背景色 #000
enableRotation true/false,是否显示角度调节控件 true
enableZoom true/false,是否显示缩放控件 true
restore 方法,重置、复位图片和插件参数  
send 方法,向服务端发送裁剪图片的数据,以便服务端接收参数进行处理,
e.g: cropzoom.send('process.php','POST',{id=1},function(r){ alert(r); });
 
选区参数
width 选区的宽度 229
height 选区的高度 100
borderColor 选区边框的颜色 yellow
borderColorHover 当鼠标滑向选区时,选区边框的颜色 red
Centered 是否将选区居中,即显示在容器的中心。 false
图片参数
source 图片的路径  
rotation 图片的初始角度 0
width 图片的宽度 0
height 图片的高度 0
minZoom 图片的最小缩放率(百分比) 10
maxZoom 图片的最大缩放率(百分比) 150

图片裁剪:CropZoom插件的更多相关文章

  1. 开源JS图片裁剪插件

    开源JS图片裁剪插件 一.总结 一句话总结: 要用点赞最高的插件,这样适用性最好,效果最好,出问题的概率也最低,这里电脑端和手机端都可以用的建议用 cropper.js 二.5款好用的开源JS图片裁剪 ...

  2. struts2+jsp+jquery+Jcrop实现图片裁剪并上传

    <1> 使用html标签上传需要裁剪的大图. <2> 在页面呈现大图,使用Jcrop(Jquery)对大图进行裁剪,并且可以进行预览. <3> 选择好截取部分之后发 ...

  3. 图片裁剪的js有哪些(整理)

    图片裁剪的js有哪些(整理) 一.总结 一句话总结:如果用了amaze框架就去amaze框架的插件库里面找图片裁剪插件,如果没用,jcrop和cropper都不错. 1.amazeui的插件库中有很多 ...

  4. 5 款最新的 jQuery 图片裁剪插件

    这篇文章主要介绍最新的 5 款 jQuery 图片裁剪插件,可以帮助你轻松的实现你网站需要的图像裁剪功能. Cropit Cropit 是一个 jQuery 插件,支持图像裁剪和缩放功能.Cropit ...

  5. Cropper – 简单的 jQuery 图片裁剪插件

    Cropper 是一个简单的 jQuery 图像裁剪插件.它支持选项,方法,事件,触摸(移动),缩放,旋转.输出的裁剪数据基于原始图像大小,这样你就可以用它们来直接裁剪图像. 如果你尝试裁剪跨域图像, ...

  6. Croppic – 免费开源的 jQuery 图片裁剪插件

    Croppic 这款开源的 jQuery 图片裁剪插件能够满足网站开发人员各种不同的使用需要.只需要简单的上传图片,就可以实现你想要的图像缩放和裁剪功能.因为使用了 HTML5 FormData  对 ...

  7. 移动端 H5图片裁剪插件,内置简单手势操作

    前面曾经写过一篇<H5图片裁剪升级版>,但里面需要借助第三方手势库,这次就不需要使用手势库,全部封装在代码中. 下图是裁剪的展示,下面就做了拖放和裁剪,没有做缩放,在插件中需要用到大量的计 ...

  8. jQuery 图片裁剪插件 Jcrop

    Jcrop是一个jQuery图片裁剪插件,它能为你的WEB应用程序快速简单地提供图片裁剪的功能.特点如下: 对所有图片均unobtrusively(无侵入的,保持DOM简洁) 支持宽高比例锁定 支持 ...

  9. 基于jQuery功能非常强大的图片裁剪插件

    今天我们要来介绍一款基于jQuery功能非常强大的图片裁剪插件,这款jQuery图片裁剪插件可以选择裁剪框的尺寸比例,可以设置高宽尺寸,同时可以设置图片翻转角度,当然也支持图片的缩放,裁剪框也可以用鼠 ...

随机推荐

  1. VC6使用技巧

    1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}.方括号[].圆括号()和尖括号<>)前面,键入快捷键“Ctrl+]”.如果括号匹配正确,光标就跳到匹配的括号处,否则 ...

  2. uva540 Team Queue by sixleaves

    这道题目.主要是对队列的灵活应用.其实就是一道模拟题目,只要你洞察出题目的本质就十分简单.题目意思大体是有多组测试数据,每组的一开始是一个数字t,代表一共有多少的团队,接着是t行输入,每一行都由一个数 ...

  3. RHEL 6.3使用CentOS yum源 (redhat yum安装失败)

    由于Redhat的yum在线更新是收费的,如果没有注册的话是不能使用的,即不能在线安装软件.所以yum install 命令每次都安装失败 下面介绍一种更改yum源的方式: 系统说明: 系统:Red ...

  4. java 获取特定天数的时间戳

    public Timestamp strToDate(int type){ Timestamp time = null; DateFormat format2= new SimpleDateForma ...

  5. Android4.0中蓝牙适配器state machine(状态机)的分析

    今天晓东和大家来一起看一下Android4.0中蓝牙适配器(Bluetooth Adapter)的状态机变化的过程.首先,我们需要了解一下,蓝牙适配器究竟有哪些状态,从代码可以清晰地看到(framew ...

  6. Android Studio Build选项的功能

    再开发过程中出现了如下错误: 无论如何clean,或者删除项目中build文件夹,Rebuild Project还是报错. 解决方案:Make Project 后出现有代码报错.修复代码问题,运行项目 ...

  7. wxpython 拖放

    拖放对用户是非常直观.它在许多桌面应用程序,用户可以复制或只需用鼠标拖动和删除另一个窗口中移动对象从一个窗口到另一个中. 拖放操作包括以下步骤 - 声明拖放目标 创建数据对象 创建 wx.DropSo ...

  8. android gallery的使用

    1: xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xml ...

  9. 通过WebService跨平台上传大文件到服务器

    好长时间没写博客了,对最近工作中遇到的大文件上传和下载的代码贴出来和大家分享一下. 大文件的上传的和下载是C++的平台通过调用WebService实现文件上传和下载到服务器 /// <summa ...

  10. RDLC报表系列(二) 行分组

    接上一篇文章的内容,今天来说的是行分组.还是打开demo1.rdlc界面,拖入一个文本框和表 1.在表中随便选择一个字段,不然在添加行组的时候不会自动提示.我这里是选择的Dept 2.在下面的行组中右 ...