function opacityRatio(image) {
const canvas = document.createElement("canvas");
const context = canvas.getContext("2d");
canvas.width = image.width;
canvas.height = image.height;
context.drawImage(image, 0, 0);
const data = context.getImageData(0, 0, canvas.width, canvas.height).data;
let opacity = 0;
for (let i = 0; i < data.length; i += 4) {
opacity += data[i + 3];
}
return (opacity / 255) / (data.length / 4);
}
This function will return a number from 0 to 1, being 0 a fully transparent image, 1 a fully opaque one. Note that it is using getImageData, and to work, the image needs to be hosted in the same origin/domain or to have cross-origin permissions.