您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically apply an HDR-like effect to all images on a webpage with adjustable settings
当前为
- // ==UserScript==
- // @name Auto HDR
- // @namespace http://taeparlaytampermonkey.net/
- // @version 13
- // @description Automatically apply an HDR-like effect to all images on a webpage with adjustable settings
- // @author tae
- // @license MIT
- // @match *://*/*
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- // Default settings
- let settings = {
- hdrEnabled: true,
- factor: 1.5, // Adjusted factor to prevent over-brightening
- excludedSites: []
- };
- // Load settings from local storage
- function loadSettings() {
- const savedSettings = localStorage.getItem('autoHDRSettings');
- if (savedSettings) {
- settings = JSON.parse(savedSettings);
- }
- }
- // Save settings to local storage
- function saveSettings() {
- localStorage.setItem('autoHDRSettings', JSON.stringify(settings));
- }
- // Apply HDR-like effect to each image
- function applyHDREffect(img) {
- const canvas = document.createElement('canvas');
- const context = canvas.getContext('2d');
- canvas.width = img.width;
- canvas.height = img.height;
- context.drawImage(img, 0, 0, img.width, img.height);
- let imageData = context.getImageData(0, 0, img.width, img.height);
- let data = imageData.data;
- for (let i = 0; i < data.length; i += 4) {
- data[i] = clamp(data[i] * settings.factor); // Red
- data[i + 1] = clamp(data[i + 1] * settings.factor); // Green
- data[i + 2] = clamp(data[i + 2] * settings.factor); // Blue
- }
- context.putImageData(imageData, 0, 0);
- img.src = canvas.toDataURL();
- img.dataset.hdrApplied = true; // Mark as HDR applied
- }
- // Helper function to clamp values between 0 and 255
- function clamp(value) {
- return Math.max(0, Math.min(255, value));
- }
- // Apply or remove HDR effect based on settings
- function toggleHDREffect() {
- const images = document.querySelectorAll('img');
- images.forEach(img => {
- if (settings.hdrEnabled) {
- if (!img.dataset.hdrApplied) {
- applyHDREffect(img);
- }
- } else {
- if (img.dataset.hdrApplied) {
- img.src = img.src; // Reset image source to remove HDR effect
- img.removeAttribute('data-hdrApplied');
- }
- }
- });
- }
- // Check if the current site is excluded
- function isSiteExcluded() {
- return settings.excludedSites.some(site => window.location.href.includes(site));
- }
- // Run the functions on page load
- window.addEventListener('load', () => {
- loadSettings();
- if (!isSiteExcluded()) {
- toggleHDREffect();
- }
- });
- })();