javascript - getImageData 未使用 data-src 获取图像的 RGB 值

标签 javascript jquery

我正在尝试使用 getImageData 根据图像的颜色来操作一个类。我使用下面的代码获取图像,但它返回 RGB 值 0,0,0。它最初在 img 标签使用 src 属性时工作,但由于我已将其更改为 data-src 以便延迟加载,它现在返回 R:0 G:0 B:0 A:0

有人可以帮忙吗?

var img = document.getElementById('hero-image');

  console.log(img);

    if(img !== null) {

    var canvas = document.createElement('canvas');

    canvas.width = img.width;
    canvas.height = img.height;

    console.log(canvas.width);

    canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);

              console.log(canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height));

    var pixelData = canvas.getContext('2d').getImageData(1, 1, 1, 1).data;

              console.log(pixelData);

    console.log('R: ' + pixelData[0] + '<br>G: ' + pixelData[1] + '<br>B: ' + pixelData[2] + '<br>A: ' + pixelData[3]);

    var avg = (pixelData[0] + pixelData[1] + pixelData[2]) / 3;

    if (avg < 100) {
        console.log('dark');
        $('.main-nav').removeClass('navbar-light');
      }
    else {
        console.log('light');
        $('.main-nav').removeClass('navbar-dark');
        $('.main-nav').addClass('navbar-light');
    }
  }

$(document).ready(function() {
  init();
});

function init() {
  ImageSliders();
  initContactForm();
  typedBanners();
  scrollingAnimations();
  navBarHide();
  animateOnLoadPosition();
  lazyLoadImages();
  navbarColour();
  openSubscribePanel();
};

最佳答案

调用$(window).load()事件中的函数

关于javascript - getImageData 未使用 data-src 获取图像的 RGB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50946976/

相关文章:

javascript - chalk.bgHex 不是函数

javascript - 为什么带有 .substring() 的变量不反射(reflect) css 样式?

javascript - 创建一个可重用的函数,用于使用回调进行删除/确认

javascript - 为内容更改创建一个 jQuery 特殊事件

jquery - 克隆和替换的 HTML5 拖放问题

javascript - 如果另一个元素高于特定高度,则显示一个元素

javascript - 如何在 Electron 应用程序中配置 Chart.js?

Javascript 样式覆盖 CSS 悬停

javascript - 如何循环进入 jQuery UI 受限 DatePicker

javascript - Window.open并修改新窗口的DOM