javascript - 处理网页中的图像时遇到问题
问题描述
我一直在尝试上传图像并将其转换为灰度版本,然后在网页上显示这两个图像。我已经在本地测试并验证了 javascript 代码的工作,并且可以正常工作。但是,当我将其集成到我的网页中时,只会上传原始图像。未生成灰度图像或未处理函数。
function doUpload(){
var image = new SimpleImage(inputFile);
image.drawTo(CanvasOG);
var imageGS = grayScale(image);
imageGS.drawTo(CanvasGS);
//var NewImage = grayScale(image);
//NewImage.drawTo(CanvasGS)
}
你能告诉我出了什么问题吗?
PS我使用杜克大学的学习编程课程的SimpleImage库来读取图像和像素值的功能
如果您想使用 html 页面https://codepen.io/girish-kumar-peddi/pen/PoPBxKb查看整个代码,我会发布一个指向 codepen 页面的链接
解决方案
SimpleImage.js 的性质drawTo()
包含一个setTimeout()
. 因此,imageData
不是立即设置,而是在 100 毫秒后设置。所以在图像被绘制到画布之后,在操作图像数据之前等待一段时间。附上drawTo()
下面的实现。
// Draws to the given canvas, setting its size to match SimpleImage's size
drawTo: function (toCanvas) {
if (this.imageData != null) {
__SimpleImageUtilities.flush(this.context, this.imageData);
toCanvas.width = this.getWidth();
toCanvas.height = this.getHeight();
toCanvas.getContext('2d').drawImage(this.canvas, 0, 0, toCanvas.width, toCanvas.height);
}
else {
var myself = this;
setTimeout(function() {
myself.drawTo(toCanvas);
}, 100);
}
},
推荐阅读
- r - 根据 R 中的许多条件和组对数据进行子集化并对其进行汇总
- reactjs - 如何在没有无限渲染循环的情况下为调用 setter 函数的子项使用带有数组状态的 useState 钩子?
- google-apps-script - 使用 Google Apps 脚本配置 OAuth
- c++ - C++ 文件处理:显示文件中总字节数和对象数的垃圾值
- c++ - 'this' 指针是否参与了虚函数的多态行为
- sql-server - 如何识别 SSIS CSV to SQL 中的问题数据
- python - 多处理的全局变量
- windows - Ansible win_uri 模块不返回 POST 查询的内容
- javascript - HTML 文件的 PHP file_get_contents 请求旧资源
- azure - 星型架构建模 Azure Synapse