Спасибо за правильную подсказку, все очень просто и даже на телефоне работает, правда с оговорками, файл-манагер при выборе файла лагает, загрузить удалось только через Галерею.
<!DOCTYPE html>
<html><head><meta charset="windows-1251"></head>
<body style="text-align:center;">
<canvas id="Src"></canvas>
<div id="SrcImgProp"></div>
<button onclick="document.getElementById('RepeatTxt').style.display='inline';document.getElementById('SrcFN').click();">Load <span id="RepeatTxt" style="display:none">another</span> picture... </button><input id="SrcFN" type="file" style="display:none;" onchange="Load(this.files[0]);"> <!-- multiple -->
<script>
function Load(FN) {
if (!FN.type.startsWith('image/')){alert('Sorry, "+FN.name+" not an image file!');return;}
let cL=document.getElementById("Src");cL.innerHTML="";
const sImg=document.createElement("img");sImg.src=window.URL.createObjectURL(FN);
sImg.onload=function() {
let w=sImg.width;
let h=sImg.height;
cL.width=w;cL.height=h;
let ctx=cL.getContext('2d');ctx.drawImage(sImg,0,0);
document.getElementById("SrcImgProp").innerHTML=FN.name+": "+sImg.width+"x"+sImg.height+" "+FN.size+" bytes.";
const sData=ctx.getImageData(0,0,w,h).data;
console.log(sData);
window.URL.revokeObjectURL(this.src);
};
};
</script>
</body></html>