javascript - 将样式转移图像应用于圆形蒙版 P5.js
问题描述
目前我将我的风格转移存储在一个名为 Temp 的临时变量中,从那里我想在圆形掩码中掩盖我的风格转移,使其成为像 Myimage 一样的圆形图像。但是问题是,当我尝试更改与 Temp 变量相关的任何内容时,我收到此错误: Uncaught (in promise) TypeError: Cannot read property 'src' of undefined。问题是变量在未更改时已定义,但如果发生任何更改,它将变为未定义。
任何帮助将不胜感激。
function setup() {
canvas = createCanvas(500, 500);
circleMask = createGraphics(128, 128);
// load two style transfer models from the models folder
style1 = ml5.styleTransfer("models/mathura", modelLoaded);
style2 = ml5.styleTransfer("models/udnie", modelLoaded);
style3 = ml5.styleTransfer("models/OversoulSpellModel", modelLoaded);
style4 = ml5.styleTransfer("models/OilPainting", modelLoaded);
circleMask.fill('rgba(0, 0, 0, 1)');
circleMask.circle(64, 64, 128); //creating a circle mask
myImage.mask(circleMask._renderer); //using . renderer apperantly fixes the issue of mask not being a function
}
function keyPressed() {
if (key == 'a') {
console.log("A");
// myImage = originalImg; // switch back to original so we can prevent recursive application
style1.transfer(canvas, function(err, result) {
tempDOMImage = createImg(result.src).hide();
myImage = tempDOMImage;
});
}else if (key == 'b') {
// myImage = originalImg; // switch back to original so we can prevent recursive application
style2.transfer(canvas, function(err, result) {
tempDOMImage = createImg(result.src).hide();
myImage = tempDOMImage;
});}
else if (key == 'c') {
// myImage = originalImg; // switch back to original so we can prevent recursive application
style3.transfer(canvas, function(err, result) {
tempDOMImage = createImg(result.src).hide();
myImage = tempDOMImage;
});}
else if (key == 'd') {
// myImage = originalImg; // switch back to original so we can prevent recursive application
style4.transfer(canvas, function(err, result) {
tempDOMImage = createImg(result.src).hide();
myImage = tempDOMImage;
});
}else {
// we should transfer back
myImage = originalImg;
}
}
解决方案
推荐阅读
- enums - 是否可以在 yaml 中使用枚举作为路径参数?
- swift - 在 Mac OS 上的 smb 服务器中获取 DFS 连接挂载通知的适当方法是什么?
- regex - 匹配两个字符之间的字符串(如果存在)
- sql - 空输出被下一个输出覆盖
- node.js - 使用 .ejs 文件在节点中生成 d3 图表时出现“未捕获的语法错误:参数列表后缺失”
- php - 使用 fetch 创建某个数组
- php - 无法使用 laravel/socialite 包登录。相反,得到 invalidToken 错误
- docker - 如何在 docker 中设置 Neo4j conf?
- linux - AWX文件复制找不到本地文件和复制到本地的文件不存在
- arduino - Arduino串行引脚未接收数据