(function() {
const canvases = Array.from(document.querySelectorAll('canvas'));
if (canvases.length === 0) return console.error("На странице вообще не найдено элементов холста!");
console.log(`[Тест] Найдено холстов на странице: ${canvases.length}. Сканируем содержимое...`);
let downloadedCount = 0;
canvases.forEach((canvas, index) => {
try {
// Пытаемся принудительно выставить параметры сохранения буфера кадра
const gl = canvas.getContext("webgl") || canvas.getContext("webgl2");
if (gl) {
// Оставляем WebGL буфер активным для чтения
gl.clearColor(0, 0, 0, 0);
}
const dataUrl = canvas.toDataURL('image/png');
// Игнорируем пустые холсты (базовые короткие строки)
if (dataUrl.length > 3000) {
downloadedCount++;
// Создаем финальное изображение на плотном белом фоне
const img = new Image();
img.onload = function() {
const finalCanvas = document.createElement('canvas');
finalCanvas.width = img.width;
finalCanvas.height = img.height;
const ctx = finalCanvas.getContext('2d');
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, finalCanvas.width, finalCanvas.height);
ctx.drawImage(img, 0, 0);
const link = document.createElement('a');
link.download = `gartic-layer-${index}-success.png`;
link.href = finalCanvas.toDataURL('image/png');
link.click();
};
img.src = dataUrl;
console.log(`%c[Слой #${index}] Найдено содержимое (${Math.round(dataUrl.length/1024)} КБ) — отправлено в Загрузки!`, "color: green; font-weight: bold;");
} else {
console.log(`[Слой #${index}] Пропущен — холст пустой.`);
}
} catch (e) {
console.warn(`[Слой #${index}] Ошибка доступа к контексту:`, e);
}
});
if (downloadedCount === 0) {
console.log("%c[Внимание] Все найденные холсты вернули пустой результат. Игра защищает буфер рендеринга.", "color: orange; font-weight: bold;");
}
})();