我有这个HTML代码,允许用户在我的混合iOS应用上上传图片:
<input type="file" accept="image/*">
选择后,Web视图会为用户提供2个选项。 1.拍摄新照片2.选择现有照片。
当用户选择&#39;选择现有图片&#39;一切正常。但是,如果用户选择“拍摄新照片”,则在上传到Firebase Storage时,会以某种方式上传到横向。
我该如何解决这个问题?这不是理想的,但是有一种方法可以只允许现有的图片&#39;选项?
以下是处理图片并在<img>
中显示的代码。
function fileUploaded(files) {
var file = files[0];
var reader = new FileReader();
reader.onload = function (e) {
var img = document.createElement("img");
img.src = e.target.result;
img.onload = function () {
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
canvas.width = 200;
canvas.height = 200;
var xStart = 0;
var yStart = 0;
var newHeight = 0;
var newWidth = 0;
var aspectRadio = img.height / img.width;
if (img.height < img.width) {
//horizontal
aspectRadio = img.width / img.height;
newHeight = 200;
newWidth = aspectRadio * 200;
xStart = -(newWidth - 200) / 2;
} else {
//vertical
newWidth = 200;
newHeight = aspectRadio * 200;
yStart = -(newHeight - 200) / 2;
}
var ctx = canvas.getContext("2d");
ctx.drawImage(img, xStart, yStart, newWidth, newHeight);
dataurl = canvas.toDataURL(file.type);
document.getElementById('img_element').src = dataurl;
}
}
reader.readAsDataURL(file);
}