`
dcj3sjt126com
  • 浏览: 1855528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP+jQuery+jCrop在线上传裁剪头像(内含源码)

    博客分类:
  • PHP
阅读更多

源码里面使用到两个开源的jQuery插件:其一是Ajax上传用的是uploadify,这个上传插件比较牛逼,并且可以自定义的东西也比较多,demo里面我用的不完善,没有把项目里面用到的取消上传和删除功能加上,同样也可以使用其他不需要使用Flash的jQuery上传插件。其二是jQuery jCrop,用于裁剪已经上传好的图片。



 
服务端我写了3个PHP文件,config.inc.php包含两个公共函数,唯一一个可以需要配置的是上传后的图片会被压缩为宽高不超过500px(默认)的小图后再供前台调用,因为如果用户上传比较大的图片的话不仅仅要占用比较多的存储空间,大图裁剪还会给服务器带来额外的压力。

function resize( $ori ){
    if( preg_match('/^http:\/\/[a-zA-Z0-9]+/', $ori ) ){
        return $ori;
    }
    $info = getImageInfo( ROOT_PATH . $ori );
    if( $info ){
        //上传图片后切割的最大宽度和高度
        $width = 500;
        $height = 500;
        $scrimg = ROOT_PATH . $ori;
        if( $info['type']=='jpg' || $info['type']=='jpeg' ){
            $im = imagecreatefromjpeg( $scrimg );
        }
        if( $info['type']=='gif' ){
            $im = imagecreatefromgif( $scrimg );
        }
        if( $info['type']=='png' ){
            $im = imagecreatefrompng( $scrimg );
        }
        if( $info['width']<=$width && $info['height']<=$height ){
            return;
        } else {
            if( $info['width'] > $info['height'] ){
                $height = intval( $info['height']/($info['width']/$width) );
            } else {
                $width = intval( $info['width']/($info['height']/$height) );
            }
        }
        $newimg = imagecreatetruecolor( $width, $height );
        imagecopyresampled( $newimg, $im, 0, 0, 0, 0, $width, $height, $info['width'], $info['height'] );
        imagejpeg( $newimg, ROOT_PATH . $ori );
        imagedestroy( $im );
    }
    return;
}

 另外两个文件upload.php和resize.php分别用于前端Ajax请求图片的上传和裁剪。需要说明的是在resize.php会把第一步上传压缩好的图片裁剪后复制为N张图片,用于生成不同大小的头像,如果需求只需要一张图片,并且不需要保留原图的,直接在原图上修改即可,这样会节省很多资源。最好强调:图片处理使用GD库,不过推荐使用imagick。

  • 大小: 62.6 KB
8
3
分享到:
评论
2 楼 biancheng921029 2014-08-02  
给力!
1 楼 mixupup 2014-03-05  
做网站刚好需要一个头像上传裁剪页面不知道要怎么做.太谢谢了~

相关推荐

    PHP+jQuery+jCrop裁剪头像

    在本项目中,“PHP+jQuery+jCrop裁剪头像”是一个常见的在线图像处理应用场景,用于让用户自定义上传的头像尺寸,以满足特定的显示需求。以下是对该项目中涉及的关键技术点的详细解释: 1. **PHP**:PHP(Hypertext...

    PHP实例开发源码—PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁.zip

    在本实例中,我们主要探讨如何使用PHP与前端技术AJAX、FileUpload和Jcrop插件相结合,实现一个完整的头像上传及剪裁功能。这个功能常见于许多社交媒体和个人资料编辑页面,允许用户自主选择并调整上传的头像图片。 ...

    jcrop插件+php实现的图片上传与裁剪

    `jCrop`是一款基于JavaScript的图像裁剪库,它允许用户在网页上选择并裁剪图像,而`PHP`作为服务器端语言,可以处理上传的图片并进行相应的裁剪操作。以下是对这个主题的详细讲解: 1. **jCrop简介**: `jCrop`是...

    头像剪切上传jquery+java源码

    这个"头像剪切上传jquery+java源码"是一个实现这一功能的示例项目,包含了前端的jQuery交互和后端的Java处理逻辑。以下是对该项目的详细解析: 前端部分主要依赖于jQuery库,这是一个广泛使用的JavaScript库,提供...

    jquery.Jcrop

    **jQuery.Jcrop** 是一个基于JavaScript和jQuery的图像裁剪插件,专为网页上的图像处理提供方便的裁剪功能。这个插件允许用户在网页上动态选择图像的一部分,并可以将其裁剪为所需的尺寸,广泛应用于头像上传、图片...

    Jcrop官方的图片裁剪jQuery插件

    1. **个人头像裁剪**:在用户上传头像时,可以用Jcrop让用户选择合适的部分作为头像。 2. **图片编辑工具**:集成到图片编辑软件中,让用户自由裁剪图片,实现个性化编辑。 3. **产品展示**:在产品展示页面,允许...

    jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)

    而jcrop插件是jQuery的扩展,它能够为用户头像添加裁剪功能。 ### jQuery与jcrop的基本介绍 jQuery是一个快速、小巧、功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。jQuery的目标是...

    jcrop裁剪图片

    在网页设计和开发中,图片裁剪功能经常被用于用户上传头像、编辑图片等场景。Jcrop是一款基于jQuery的开源图片裁剪插件,它提供了简单易用的API,使得开发者能够轻松地在网页中实现按比例或自由裁剪图片的功能。本文...

    移动端图片上传和裁剪-Jcrop实现

    本文将详细介绍如何利用Jcrop库在移动端实现图片的上传与任意尺寸裁剪。 Jcrop是一款强大的JavaScript图像裁剪工具,它允许用户通过网页交互方式自由选择图片的裁剪区域。这个库基于jQuery,因此需要先引入jQuery...

    java+Jcrop实现上传即时显示图片并裁剪

    基于java web项目和Jquery 的Jcrop实现对图片的上传即时显示并裁剪,最终保存裁剪结果。文件包含 JAVA源码和数据库脚本,创建数据库,导入脚本,项目导入开发工具部署即可看到即时裁剪效果。

    采用Jquery,用PHP程序实现的头像裁切程序实例

    综上所述,这个头像裁切程序实例结合了jQuery的前端交互能力和PHP的后端处理能力,实现了用户友好的头像裁剪功能。用户可以在浏览器中自由调整裁切区域,前端实时显示裁切效果,而后端则根据接收到的参数生成新的...

    jQuery实现的移动设备图片裁剪功能源码.zip

    【标题】"jQuery实现的移动设备图片裁剪功能源码.zip"所涉及的知识点主要集中在JavaScript库jQuery的使用以及在移动设备上实现图片裁剪功能的技术。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件...

    jquery头像上传裁剪

    标题中的“jquery头像上传裁剪”涉及到一个前端图片处理技术,主要利用jQuery库和Jcrop插件来实现在网页上进行头像的选择与裁剪功能。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画...

    jQuery实现上传图片裁剪区域特效源码.zip

    本资源“jQuery实现上传图片裁剪区域特效源码.zip”提供了使用jQuery来实现一个功能丰富的图片上传并裁剪的功能,这对于前端开发者来说是一个非常实用的工具,尤其适用于那些需要用户上传定制化图片的应用场景。...

    用jcrop裁剪图片

    Jcrop是基于jQuery的一个插件,它的主要任务是为图片添加可拖动的选区,用户可以通过移动和调整选区来确定裁剪区域。在选区确定后,开发者可以获取选区的坐标和比例信息,从而在服务器端或客户端进行实际的图片裁剪...

    jQuery上传图片裁剪区域并保存代码

    在本文中,我们将深入探讨如何使用jQuery库实现一个图片上传并进行裁剪的功能,最终将裁剪后的图像保存。这个功能适用于多种现代浏览器,包括360、Firefox、Chrome、Opera、Maxthon、Sogou以及World Wide Web,但不...

    前端切图--Jcrop

    例如,假设我们有一个用户上传照片并需要裁剪成正方形头像的场景。首先,用户上传一张照片,然后使用 Jcrop 让用户在图片上选择一个矩形区域。当用户确定选择后,我们通过 JavaScript 获取选区坐标,接着使用 canvas...

Global site tag (gtag.js) - Google Analytics