Advertisement
xpppppppaicyber

asdsadsda

Jul 16th, 2024
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function getAverageColor(blobUrl, callback) {
  2.     const img = new Image();
  3.     img.crossOrigin = "Anonymous"; // Handle potential CORS issues
  4.     img.src = blobUrl;
  5.  
  6.     img.onload = () => {
  7.         const canvas = document.createElement('canvas');
  8.         canvas.width = img.width;
  9.         canvas.height = img.height;
  10.         const context = canvas.getContext('2d');
  11.         context.drawImage(img, 0, 0);
  12.  
  13.         const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
  14.         const data = imageData.data;
  15.         let r = 0, g = 0, b = 0;
  16.  
  17.         for (let i = 0; i < data.length; i += 4) {
  18.             r += data[i];
  19.             g += data[i + 1];
  20.             b += data[i + 2];
  21.         }
  22.  
  23.         const pixelCount = data.length / 4;
  24.         r = Math.floor(r / pixelCount);
  25.         g = Math.floor(g / pixelCount);
  26.         b = Math.floor(b / pixelCount);
  27.  
  28.         callback({ r, g, b });
  29.     };
  30.  
  31.     img.onerror = () => {
  32.         callback(null, new Error('Failed to load image'));
  33.     };
  34. }
  35.  
  36. // Example usage with the provided Blob URL
  37. const blobUrl = 'blob:https://play.pixels.xyz/095fc136-3a0b-4843-a571-de46d657986d';
  38. getAverageColor(blobUrl, (color, error) => {
  39.     if (error) {
  40.         console.error(error);
  41.     } else {
  42.         console.log('Average color:', color);
  43.     }
  44. });
  45.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement