刘贵学博客

上传头像并压缩裁剪

1. 问题概述

我们做的一个报名系统,有个上传头像的功能,一开始前端同学忘记使用 lrz.js的压缩上传了。造成的结果是,客户上传的头像大多是 1M以上,造成空间与网络的浪费,体验也很长。

2. 解决方案

此问题的解决分两个方面:

  • 一个是 root case,即:开启前端压缩,利用canvas的 base64格式字节码上传到服务器。
  • 另一方面,之前已经上传的头像补救。

2.1 lrz.js图片压缩方案

lrz使用方法

2.2 利用命令行批量裁剪图片

这里用的工具是 imagemagick 里的 convert 命令, shell脚本如下, reszie.sh:

filepath="$1"
filelist=`ls $filepath`
for file in $filelist
do 
 echo  "$filepath/$file"
 convert -resize 300 "$filepath/$file" "$filepath/$file"
done

使用方法:

reszie.sh ./Upload