您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Apply an HDR-like effect to images and videos on a webpage with adjustable settings.
// ==UserScript== // @name Auto HDR Enhanced // @namespace http://taeparlaytampermonkey.net/ // @version 15.2 // @description Apply an HDR-like effect to images and videos on a webpage with adjustable settings. // @author tae // @license MIT // @match *://*/* // @grant none // @run-at document-start // ==/UserScript== (function () { 'use strict'; // Default settings const settings = { hdrEnabled: true, brightness: 1.0, contrast: 1.1, saturation: 0.8, excludedSites: [], }; // Load settings from local storage function loadSettings() { const savedSettings = localStorage.getItem('autoHDRSettings'); if (savedSettings) { Object.assign(settings, JSON.parse(savedSettings)); } } // Save settings to local storage function saveSettings() { localStorage.setItem('autoHDRSettings', JSON.stringify(settings)); } // Apply HDR-like effect using canvas function applyHDREffect(img) { if (!img.complete || img.dataset.hdrApplied) return; const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); canvas.width = img.naturalWidth; canvas.height = img.naturalHeight; ctx.drawImage(img, 0, 0, canvas.width, canvas.height); let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); const data = imageData.data; // Adjust brightness, contrast, and saturation for (let i = 0; i < data.length; i += 4) { let [r, g, b] = [data[i], data[i + 1], data[i + 2]]; // Apply brightness and contrast r = clamp(r * settings.brightness * settings.contrast); g = clamp(g * settings.brightness * settings.contrast); b = clamp(b * settings.brightness * settings.contrast); // Apply saturation [r, g, b] = applySaturation(r, g, b, settings.saturation); [data[i], data[i + 1], data[i + 2]] = [r, g, b]; } ctx.putImageData(imageData, 0, 0); img.src = canvas.toDataURL(); img.dataset.hdrApplied = true; // Mark as processed } // Saturation adjustment function function applySaturation(r, g, b, factor) { const grayscale = 0.3 * r + 0.59 * g + 0.11 * b; r += (r - grayscale) * (factor - 1); g += (g - grayscale) * (factor - 1); b += (b - grayscale) * (factor - 1); return [clamp(r), clamp(g), clamp(b)]; } // Clamp values to 0-255 function clamp(value) { return Math.max(0, Math.min(255, value)); } // Apply CSS filters to videos function applyHDRToVideos() { document.querySelectorAll('video:not([data-hdrApplied])').forEach(video => { video.style.filter = `brightness(${settings.brightness}) contrast(${settings.contrast}) saturate(${settings.saturation})`; video.dataset.hdrApplied = true; }); } // Check if the current site is excluded function isSiteExcluded() { return settings.excludedSites.some(site => window.location.href.includes(site)); } // Toggle HDR effect on or off function toggleHDREffect() { const images = document.querySelectorAll('img'); images.forEach(img => { if (settings.hdrEnabled) { applyHDREffect(img); } else { if (img.dataset.hdrApplied) { img.removeAttribute('data-hdrApplied'); img.src = img.src; // Reset image source } } }); if (settings.hdrEnabled) { applyHDRToVideos(); } else { document.querySelectorAll('video').forEach(video => { video.style.filter = ''; video.removeAttribute('data-hdrApplied'); }); } } // Initialize the script function init() { loadSettings(); if (!isSiteExcluded()) { const observer = new MutationObserver(() => { if (settings.hdrEnabled) { document.querySelectorAll('img:not([data-hdrApplied])').forEach(applyHDREffect); applyHDRToVideos(); } }); observer.observe(document.body, { childList: true, subtree: true }); window.addEventListener('load', toggleHDREffect); } } init(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址