file.typeを確認
今回のケースは、Android端末で
・カメラから読み込んだ画像はfile.type=image/jpeg
・フォトライブラリから読み込んだ画像はfile.type=null
という状態だったので、強制的にfile.typeを付けることで解決
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function (e) {
// file.apiの処理
// 画像生成
var img = new Image();
img.onload = function(){
}
if (file.type.indexOf('image') >= 0) {
// 画像が入っている場合は 0が返ってくる
// そのまま使用
img.src = reader.result;
} else {
// nullの場合は -1が返ってくる
// 強制的にfile.typeを付ける
var base64 = reader.result.replace('data:', '');
var newSrc = "data:image/jpeg;" + base64;
img.src = newSrc;
}
}