use*_*370 6 exif typescript angular
如何在Angular 2中修复EXIF方向?我正在从手机上加载图像,我需要修复方向.
我已经尝试过这篇文章的解决方案:组件通过引用输入 但是typecript不能识别FileReaderEvent类型,EXIF不存在,我无法访问imageRotateDegrees,ImageExifRotation ...属性.
这是我的代码:
imageChange(input){
if (input.files.length > 0) {
var img = document.createElement("img");
img.src = window.URL.createObjectURL(input.files[0]);
// Create a FileReader
var reader = new FileReader();
var self = this;
reader.onload = function (e: any) {
img.onload = function() {
var resizedImg = self.resize(img);
self.model.base64Image = resizedImg;
self.picture = resizedImg;
}
img.src = e.target.result;
}
reader.readAsDataURL(input.files[0])
}
}
小智 1
我找到了一个解决该问题的 Angular 库https://github.com/bergben/ng2-img-max#readme并使用以下代码使其对我有用:
initInputChangeListener() {
const fileInput = document.getElementById('imageFileInput');
if (fileInput) {
fileInput.addEventListener('change', (e: any) => {
if (e.target.files && e.target.files[0]) {
const fileReader = new FileReader();
fileReader.onload = () => {
setTimeout(() => {
this.base64Image = fileReader.result;
// not sure if you need this
// but i had problems without this line of code
});
setTimeout(() => {
let myImage: HTMLImageElement = new Image();
myImage.src = fileReader.result;
this.ng2ImgMaxService.getEXIFOrientedImage(myImage)
.then(result => {
console.log('received getEXIFOrientedImage result');
let canvas =
<HTMLCanvasElement> document.getElementById('myCanvas');
let context = canvas.getContext('2d');
let ratio = result.width / result.height;
let w = result.width - 100;
let h = (w / ratio);
canvas.width = w;
canvas.height = h;
context.drawImage(result, 0, 0, w, h);
let dataUrl = canvas.toDataURL('image/jpeg');
setTimeout(() => {
console.log('updating the image...');
this.base64Image = dataUrl;
});
}, error => {
console.warn(error);
});
});
};
fileReader.readAsDataURL(e.target.files[0]);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的模板里面:
<img [src]="base64Image" />
<canvas id="myCanvas" style="display: none;"></canvas>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1977 次 |
最近记录: |