您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Upload your picture as custom skin on agar.io
// ==UserScript== // @name Agar.io Custom skin Uploader v2 // @namespace http://tampermonkey.net/ // @version 1.0 // @description Upload your picture as custom skin on agar.io // @author Dhal x Chat GPT // @match *://*.agar.io/* // @grant none // ==/UserScript== (function () { 'use strict'; // Définir les chaînes pour différentes langues const messages = { en: { buttonText: 'Convert and Inject Image', selectFile: 'No file selected.', convertSuccess: 'Image successfully converted to Base64!', injectConfirmation: 'Do you want to inject the image into the canvas (#skin-editor-canvas)?', resizeConfirmation: 'The image is too large. It will be resized to 512x512.', injectSuccess: 'Image successfully injected into the canvas!', resizeSuccess: 'Image resized to 512x512. Do you want to inject it?', base64Alert: 'Here is your Base64:', error: 'Error while loading the image. Please check your Base64.' }, fr: { buttonText: 'Convertir et Injecter Image', selectFile: 'Aucun fichier sélectionné.', convertSuccess: 'Image convertie avec succès en Base64 !', injectConfirmation: 'Voulez-vous injecter l’image dans le canvas (#skin-editor-canvas) ?', resizeConfirmation: 'L’image est trop grande. Elle sera redimensionnée à 512x512.', injectSuccess: 'Image injectée avec succès dans le canvas !', resizeSuccess: 'Image redimensionnée à 512x512. Voulez-vous l’injecter ?', base64Alert: 'Voici votre Base64 :', error: 'Erreur lors du chargement de l’image. Vérifiez votre Base64.' }, es: { buttonText: 'Convertir e Inyectar Imagen', selectFile: 'Ningún archivo seleccionado.', convertSuccess: '¡Imagen convertida con éxito a Base64!', injectConfirmation: '¿Quieres inyectar la imagen en el lienzo (#skin-editor-canvas)?', resizeConfirmation: 'La imagen es demasiado grande. Se redimensionará a 512x512.', injectSuccess: '¡Imagen inyectada con éxito en el lienzo!', resizeSuccess: 'Imagen redimensionada a 512x512. ¿Quieres inyectarla?', base64Alert: 'Aquí está tu Base64:', error: 'Error al cargar la imagen. Verifica tu Base64.' }, // Ajouter d'autres langues ici si nécessaire }; // Détection de la langue du navigateur const lang = navigator.language.split('-')[0] || 'en'; // Utilise la première partie de la langue (ex : "en", "fr") const currentMessages = messages[lang] || messages.en; // Si la langue n'est pas définie, utilise l'anglais par défaut // Crée un bouton flottant pour démarrer les actions const button = document.createElement('button'); button.innerText = currentMessages.buttonText; button.style.position = 'fixed'; button.style.bottom = '20px'; button.style.right = '20px'; button.style.zIndex = '10000'; button.style.padding = '10px 20px'; button.style.backgroundColor = '#007bff'; button.style.color = '#fff'; button.style.border = 'none'; button.style.borderRadius = '5px'; button.style.cursor = 'pointer'; document.body.appendChild(button); button.addEventListener('click', () => { convertImageFileToBase64(); }); // Fonction pour convertir un fichier image en Base64 function convertImageFileToBase64() { const input = document.createElement('input'); input.type = 'file'; input.accept = 'image/*'; input.style.display = 'none'; input.addEventListener('change', (event) => { const file = event.target.files[0]; if (!file) { alert(currentMessages.selectFile); return; } const reader = new FileReader(); reader.onload = (e) => { const base64 = e.target.result; const image = new Image(); image.onload = () => { // Vérifier si l'image dépasse 512x512 et redimensionner si nécessaire if (image.width > 512 || image.height > 512) { alert(currentMessages.resizeConfirmation); resizeImage(image); } else { const confirmInjection = confirm( currentMessages.injectConfirmation ); if (confirmInjection) { injectBase64(base64, image.width, image.height); } else { alert(currentMessages.base64Alert + '\n' + base64); } } }; image.onerror = () => { alert(currentMessages.error); }; image.src = base64; }; reader.onerror = () => { alert(currentMessages.error); }; reader.readAsDataURL(file); }); document.body.appendChild(input); input.click(); document.body.removeChild(input); } // Fonction pour redimensionner l'image à 512x512 function resizeImage(image) { const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); // Calcul des nouvelles dimensions const maxDimension = 512; let width = image.width; let height = image.height; if (width > height) { if (width > maxDimension) { height = Math.floor((maxDimension / width) * height); width = maxDimension; } } else { if (height > maxDimension) { width = Math.floor((maxDimension / height) * width); height = maxDimension; } } // Redimensionner l'image canvas.width = width; canvas.height = height; ctx.drawImage(image, 0, 0, width, height); // Convertir en Base64 après redimensionnement const resizedBase64 = canvas.toDataURL(); // Injecter l'image redimensionnée dans le canvas const confirmInjection = confirm( currentMessages.resizeSuccess ); if (confirmInjection) { injectBase64(resizedBase64, width, height); } else { alert(currentMessages.base64Alert + '\n' + resizedBase64); } } // Fonction pour injecter une image Base64 dans le canvas function injectBase64(base64, width, height) { const canvas = document.getElementById('skin-editor-canvas'); if (!canvas) { alert('Canvas "skin-editor-canvas" introuvable sur cette page.'); return; } const ctx = canvas.getContext('2d'); const image = new Image(); image.onload = () => { ctx.clearRect(0, 0, canvas.width, canvas.height); // Nettoie le canvas avant l'injection ctx.drawImage(image, 0, 0, 512, 512); ctx.save(); alert(currentMessages.injectSuccess); }; image.onerror = () => { alert(currentMessages.error); }; image.src = base64; } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址