首页 > 解决方案 > 我无法在 JavaScript 上重置图像

问题描述

我无法在 javascript 上重置图像,codepen 说 imagem in not defined。

Codepen 链接:https ://codepen.io/AlissonTelez/pen/ExPJBvv

那是变量:

var originalImage;
var grayImage = null;
var redImage = null;
var rainbowImage = null;
var windowImage = null;
var canvas = document.getElementById("can1");

那就是使过滤器变红的功能:

function makeRedy() {
  if (imgCarregada(imagemRedy)) {
    filtroVermelho();
    var canNovo = document.getElementById("can");
    imagemRedy.drawTo(canvas);
  }
}
function filtroVermelho() {
    for (var pixel2 of imagemRedy.values()) {
      avg2 = (pixel2.getRed()+pixel2.getGreen()+pixel2.getBlue()/3);
      if (avg2 < 128) {
        pixel2.setRed(2*avg2);
        pixel2.setGreen(0);
        pixel2.setBlue(0);
      }
      else {
        pixel2.setRed(255);
        pixel2.setGreen((2*avg2)-255);
        pixel2.setBlue((2*avg2)-255);
      }
   }
}

那是重置功能:

function resete() {
  if (imgCarregada(imagem)) {
    imagem.drawTo(canvas);
  }
}
function imgCarregada(x) {
  if (x === null) {
    return false;
  }
  else if (x !== null) {
    return true;
  }
}

标签: javascripthtmlcss

解决方案


你还没有定义imagem。但看起来您的原始图像被存储为imagemOriginal.

将您的resete()功能更改为此;

function resete() {
  if (imgCarregada(imagemOriginal)) {
    imagemOriginal.drawTo(canvas);
  }
}

基于您的CodePen。这似乎与您在问题中粘贴的内容不同。


推荐阅读