test imageCapture
by fxi
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Screen Capture API Example</title>
</head>
<body>
<h1>test</h2>
<button onclick="takeScreenshot()">Take Screenshot</button>
<iframe width='800' height='500' src='https://app.mapx.org/static.html?language=en&views=MX-E0C30-K480J-EIRZX&zoomToViews=true&p=0&b=0&z=1.774&lat=32.892&lng=-10.995&t3d=false&sat=false&theme=classic_light&globe=false' frameborder='0' allowfullscreen></iframe>
<div>
<img id="screenshot" style="max-width: 80%; margin-top: 20px;" />
</div>
<script>
async function takeScreenshot() {
try {
const mediaStream = await navigator.mediaDevices.getDisplayMedia({
video: { mediaSource: "screen" }
});
const track = mediaStream.getVideoTracks()[0];
const imageCapture = new ImageCapture(track);
const bitmap = await imageCapture.grabFrame();
// Stop capturing after screenshot is taken
track.stop();
// Convert bitmap to data URL
const canvas = document.createElement('canvas');
canvas.width = bitmap.width;
canvas.height = bitmap.height;
const context = canvas.getContext('2d');
context.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height);
const img = document.getElementById('screenshot');
img.src = canvas.toDataURL('image/png');
} catch (err) {
console.error("Error: ", err);
alert("Unable to capture screenshot: " + err.message);
}
}
</script>
</body>
</html>