如何在使用角度文件上传之前修复EXIF方向
How to fix EXIF orientation on before upload with angular-file-upload
我正在使用角度文件上传指令上传文件,我对使用苹果设备拍摄的图像或照片有问题,我知道苹果在图像上包含exif方向数据以纠正苹果设备上的视图,但是当这些图像上传到网络应用程序时,浏览器的方向是错误的。
我在我的应用程序的几个视图中使用此指令,因为时间 reazon 更改为另一个像 ng-file-upload 这样的指令不是最佳选择。
还有其他一些指令可以解决此问题,例如ng文件上传,但我想知道如何使用角度文件上传的onBeforeUploadItem事件解决此问题。
现在我解决了它。
这是我的工作。
以下是 html 中的代码:
<input id="upload_button" type="file" nv-file-select="" uploader="uploader" multiple/>
和
<img ng-show="uploader.isHTML5" ng-src="{{pic}}" height="100%" />
然后在控制器中:
var handleFileSelect = function(evt) {
$scope.pic = "";
var target = evt.dataTransfer || evt.target;
var file = target && target.files && target.files[0];
var options = {
canvas: true
};
var displayImg = function(img) {
$scope.$apply(function($scope) {
$scope.pic = img.toDataURL();
$scope.rotatedFile = dataURItoBlob($scope.pic);
});
};
loadImage.parseMetaData(file, function(data) {
if (data.exif) {
options.orientation = data.exif.get('Orientation');
}
loadImage(file, displayImg, options);
});
};
angular.element(document.querySelector('#upload_button')).on('change', handleFileSelect);
var dataURItoBlob = function(dataURI) {
var binary = atob(dataURI.split(',')[1]);
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
var array = [];
for(var i = 0; i < binary.length; i++) {
array.push(binary.charCodeAt(i));
}
return new Blob([new Uint8Array(array)], {type: mimeString});
};`
然后,在上传之前:
uploader.onBeforeUploadItem = function(item) {
$log.debug('onBeforeUploadItem', item);
item._file = $scope.rotatedFile;
};
你需要 loader-image.min.js、ng-img-crop.js 和 app 中的[ngImgCrop]
.js
仅此而已。
我希望它对你有所帮助。
相关文章:
- ng映射方向备选方案
- 当图像转换为本地存储的DataURL时,EXIF被删除
- RubyonRails——构建交互式接口应该朝哪个方向发展
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 我怎样才能知道用户滑动的方向
- 使用谷歌地图API和phonegap显示当前位置+方向
- 用真或假初始化变量是否在 Javascript 中建立了内容的方向
- 带有自定义标记的谷歌地图方向APIv3
- 在角度方向的元素之前插入
- 更改D3方向力图中箭头标记的方向
- fullpage.js在滚动时更改滚动方向
- 基于谷歌地图API方向服务构建的替代路线
- 如何将字符串地址传递到传单路由机,以根据字符串地址获得方向
- 如何应用EXIF方向
- 在javascript中检测图像的EXIF方向
- 如何在使用角度文件上传之前修复EXIF方向
- iOS 中的 Exif 方向问题
- Javascript EXIF 图像方向和图像预览
- 获取 img 元素的 exif 方向并相应地分配类