新增加个js文件exif.js,下载地址:https://github.com/exif-js/exif-js
<link rel="stylesheet" type="text/css" href="css/webuploader.css" />
<script src="js/webuploader.js"></script>
<script src="js/upload.js"></script>
<script src="js/exif.js"></script>
涉及到的文件修改
1、webuploader.css 开头增加
/*exif插件 旋转*/
.rotate-90{
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform:rotate(90deg);
transform:rotate(90deg);
}
.rotate-180{
-webkit-transform:rotate(180deg);
-moz-transform:rotate(180deg);
-o-transform:rotate(180deg);
transform:rotate(180deg);
}
.rotate-270{
-webkit-transform:rotate(270deg);
-moz-transform:rotate(270deg);
-o-transform:rotate(270deg);
transform:rotate(270deg);
}
2、修改webuploader.js 大概6535行 在_rotate2Orientaion: function( canvas, orientation ) { 的上面,屏蔽原来的代码,下面代码是新增的
//opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
if (orientation > 1) {
this._rotate2Orientaion(cvs, orientation);
} else {
opts.preserveHeaders || this._rotate2Orientaion(cvs, orientation);
}
3、修改upload.js,在uploader.onFileQueued 里 addFile( file ) 上面新增代码,对应上面新增的css代码,完整的upload.js见上一篇文章
//exif插件
var rFilter = /^(image\/jpeg|image\/jpg)$/i; // 检查图片格式
if (rFilter.test(file.type) && file.source.source !== undefined) {
EXIF.getData(file.source.source, function() {
Orientation = EXIF.getTag(this, 'Orientation');
if (file.source.source && Orientation > 1) {
//获取照片方向角属性,用户旋转控制
console.log(Orientation);
var _rotate = 0;
if (Orientation == 3) {
_rotate = 180;
} else if (Orientation == 6) {
_rotate = 90;
} else if (Orientation == 8) {
_rotate = 270;
};
$("#"+file.id+" .imgWrap").addClass('rotate-' + _rotate);
}
});
}