我正在尝试在我的函数中获取exif方向变量,但是我可以将它抓到另一个函数...我怎么能得到它(var orientat)?
$(function() {
$('#takePictureField').change(function(e) {
$("#canvas_captimg").show();
$( "#imgcaptmobile" ).empty();
$( "#imgcaptmobile" ).hide();
var file = e.target.files[0],
imageType = /image.*/;
if (!file.type.match(imageType))
return;
var fr = new FileReader();
fr.onload = function() {
var exif = EXIF.readFromBinaryFile(new BinaryFile(this.result));
// console.log(exif.Orientation);
var orientat = exif.Orientation;
};
fr.readAsBinaryString(file);
var reader = new FileReader();
reader.onloadend = fileOnload;
reader.readAsDataURL(file);
});
function fileOnload(e) {
var $img = $('<img>', { src: e.target.result });
var canvas = $('#canvas_captimg')[0];
var context = canvas.getContext('2d');
$img.load(function() {
var MAX_WIDTH = 487;
var MAX_HEIGHT = 1800;
var width = this.width;
var height = this.height;
var moit_width_2 = 0;
var moit_height_2 = 0;
console.log(orientat);
if (orientat > 1) {
if (orientat == 3 || orientat == 4) {
var rotation = 180;
}
if (orientat == 6 || orientat == 5) {
var rotation = 90;
}
if (orientat == 8 || orientat == 7) {
var rotation = 270;
}
var moit_width = width / 2;
var moit_height = height / 2;
var moit_width_2 = 0 - moit_width;
var moit_height_2 = 0 - moit_height;
context.translate(moit_width, moit_height);
context.rotate(rotation * Math.PI/180);
}
if (width > height) {
if (width > MAX_WIDTH) {
height *= MAX_WIDTH / width;
width = MAX_WIDTH;
}
} else {
if (height > MAX_HEIGHT) {
width *= MAX_HEIGHT / height;
height = MAX_HEIGHT;
}
}
context.drawImage(this, moit_width_2, moit_height_2, width, height);
$( "#imgcaptmobile" ).append( '<img id="imagecaptmobile" src="' + canvas.toDataURL("image/png") + '" style="display:hidden">');
});
}
});
答案 0 :(得分:1)
您应该在 - What is the scope of variables in JavaScript?查看答案,了解变量范围在javascript中的工作原理,以便了解您的要求。
要回答您的问题,请将变量设为全局或将其作为参数传递给函数。
要使其全球化,请尝试以下方法:
在开头添加以下行。
var orientat;
将作业更新为
orientat = exif.Orientation;