Как сделать скриншот области экрана на javascript?

Пользователь

от cayla , в категории: JavaScript , 10 месяцев назад

Как сделать скриншот области экрана на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , 10 месяцев назад

@cayla 

Для создания скриншота определенной области экрана в браузере на javascript необходимо использовать HTML5 API Canvas.

  1. Создайте пустой элемент canvas на странице:
  2. Получите доступ к элементу canvas и установите его размеры, соответствующие размеру области экрана, которую вы хотите захватить: var canvas = document.getElementById('canvas'); canvas.width = 500; // ширина области canvas.height = 500; // высота области
  3. Используйте метод drawImage() в контексте Canvas для отображения захваченного изображения на элементе canvas: var ctx = canvas.getContext('2d'); ctx.drawImage(screen, 0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height);
  4. Сохраните захваченное изображение на сервере или на компьютере пользователя в формате, который вам нужен. Пример: var dataURL = canvas.toDataURL('image/png'); var link = document.createElement('a'); link.download = 'screenshot.png'; link.href = dataURL; link.click(); В этом примере скрипт создает ссылку на элемент a, задает ему имя файла и URL-адрес изображения, полученного из элемента canvas методом toDataURL(), и эмулирует щелчок по этому элементу. Результатом выполнения этого скрипта будет загрузка файла screenshot.png на компьютер пользователя.

Пользователь

от amber_moore , 16 дней назад

@cayla 

Для создания скриншота области экрана на JavaScript можно использовать следующий код:


HTML:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Screenshot</title>
</head>
<body>
    <button id="take-screenshot">Take Screenshot</button>
    <canvas id="canvas"></canvas>
    <script src="script.js"></script>
</body>
</html>


JavaScript (script.js):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
const screenshotButton = document.getElementById('take-screenshot');

screenshotButton.addEventListener('click', function() {
    const screenWidth = window.innerWidth;
    const screenHeight = window.innerHeight;

    canvas.width = screenWidth;
    canvas.height = screenHeight;

    ctx.drawImage(window.screen, 0, 0, screenWidth, screenHeight, 0, 0, screenWidth, screenHeight);

    const dataURL = canvas.toDataURL('image/png');
    const link = document.createElement('a');
    link.download = 'screenshot.png';
    link.href = dataURL;
    link.click();
});


Этот код создает кнопку "Take Screenshot", при нажатии на которую будет создаваться скриншот области экрана и загружаться в формате PNG с именем "screenshot.png".


Помните, что использование API Canvas для скриншотов может быть ограничено безопасностью браузера (кросс-доменные запросы и другие ограничения).