gpt4 book ai didi

javascript - getImageData 返回上一张上传图片的值,而不是当前图片的值

转载 作者:行者123 更新时间:2023-12-03 03:16:45 25 4
gpt4 key购买 nike

当下面的代码返回上一张上传的图片而不是当前图片的值时,有人可以告诉我哪里出了问题吗?

    var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');


function handleImage(e){
var reader = new FileReader();
reader.onload = function(event){
var img = new Image();
img.onload = function(){
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img,0,0);
}
img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);


var imageWidth = canvas.width;
var imageHeight = canvas.height;


var imageData = ctx.getImageData(0,0,imageWidth,imageHeight);
var data = imageData.data;

console.log("imageWidth=" +imageWidth);

图像通过以下输入上传:

  <canvas id="imageCanvas"></canvas>
<br>
<input type='file' id="imageLoader" name="imageLoader"/>
<br>

有什么想法吗?

最佳答案

load事件FileReader<img>都是异步的。地点

var imageWidth = canvas.width;
var imageHeight = canvas.height;

var imageData = ctx.getImageData(0,0,imageWidth,imageHeight);
var data = imageData.data;

console.log("imageWidth=" +imageWidth);

<img>load事件处理程序。

您还可以设置.value<input type="file">元素至 ""删除对当前上传的引用 File元素中的对象 .files属性。

关于javascript - getImageData 返回上一张上传图片的值,而不是当前图片的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46741887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com