我正在创建HTML5游戏。我正在使用使用Webpack的样板。 我一直在尝试将本地文件夹中的png图像添加到js文件中,但始终出现以下错误:
GET http://localhost:3000/alien.png 404 (Not Found)
和Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.
我在canvas.js
文件中使用的代码如下:
let alienImg = new Image();
alienImg.src = 'alien.png';
c.drawImage(alienImg, 300, 300)
我在尝试将图像粘贴到画布上时是做错了事,还是在webpack.config.js文件中发生了事?
以下是webpack文件,以供参考:
module: {
rules: [
{
test: /\.(js)$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['env']
}
}
},
{
test: /\.html$/,
loader: 'html-loader?attrs[]=video:src'
},
{
test: /\.mp4$/,
loader: 'url-loader?limit=10000&mimetype=video/mp4'
},
{
test: /\.png$/,
loader: "url-loader?mimetype=image/png"
}
]
},
有人可以帮助我吗?预先谢谢你!
答案 0 :(得分:1)
我只是使用html2Canvas
import html2canvas from 'html2canvas';
...
html2canvas(document.querySelector(selector)).then(canvas => {
console.log(canvas);
document.body.appendChild(canvas)
canvas.setAttribute('downloads', 'nameOfImage.png')
var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href = image
});
我希望这可以有所帮助。如果是这样,那就开心吧。 :)
答案 1 :(得分:0)
使用时:
alienImg.src = 'alien.png';
您正在为图片提供图片的网址-大概在该路径中不存在(假设它为您提供404)。
我想您要做的是
import alienImage from './alien.png';
然后您可以使用
alienImg.src = alienImage;
这是在为webpack捆绑并公开公共资源后,为您提供图像位置的正确URL。