我正在使用glfx.js来编辑我的图像但是当我试图使用该toDataURL()函数获取该图像的数据时,我得到一个空白图像(宽度与原始图像的大小相同).
奇怪的是,在Chrome中脚本运行完美.
我想提到的是canvas使用onload事件加载图像:
img.onload = function(){
try {
canvas = fx.canvas();
} catch (e) {
alert(e);
return;
}
// convert the image to a texture
texture = canvas.texture(img);
// draw and update canvas
canvas.draw(texture).update();
// replace the image with the canvas
img.parentNode.insertBefore(canvas, img);
img.parentNode.removeChild(img);
}
Run Code Online (Sandbox Code Playgroud)
我的图像的路径也在同一个域上;
问题(在Firefox中)是我点击保存按钮.Chrome会返回预期的结果,但Firefox会返回此信息:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA7YAAAIWCAYAAABjkRHCAAAHxklEQVR4nO3BMQEAAADCoPVPbQZ/oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
... [ lots of A s ] ...
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAzwD6aAABkwvPRgAAAABJRU5ErkJggg==
Run Code Online (Sandbox Code Playgroud)
什么可能导致这个结果,我该如何解决?
我正在尝试使用以下代码段将此页面canvas上的元素转换为png(例如,在JavaScript控制台中输入):
(function convertCanvasToImage(canvas) {
var image = new Image();
image.src = canvas.toDataURL("image/png");
return image;
})($$('canvas')[0]);
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到的png是完全空白的.另请注意,在调整页面大小后,原始画布将变为空白.
为什么canvas空白?我该如何将其转换canvas为png?
我有一个带有webGL绘图的画布,由Blend4Web框架创建.
我尝试使用toDataURL()以下方法保存图像:
image= $('canvas')[0].toDataURL();
Run Code Online (Sandbox Code Playgroud)
所有平台都很完美,除了iOS(iphone和ipad)
我知道webGL方面:Canvas toDataURL()仅在Firefox中返回空白图像,preserveDrawingBuffer已启用.
另外,我知道iOS中的限制:iOS HTML5 Canvas toDataURL,但画布很小,甚至100×500px图像都是空白的(它是0,05MP,限制是3MP).
我用来toDataURL()在服务器上发送图形信息.
我无法使用toDataUrl()。这是我尝试获取画布图像并将其用作现有图像元素来源的代码。
var canvas = document.getElementById('glcanvas');
canvas.setAttribute('crossOrigin','anonymous');
var img = document.getElementById('imageToShowCanvas');
img.src = canvas.toDataURL();
Run Code Online (Sandbox Code Playgroud)
imageToShowCanvas显示的是一个损坏的URL。当我console.log调用toDataUrl()的结果时,我得到一个链接,该链接显示具有画布高度和宽度的透明图像。
我听说过cors问题会导致此类问题,但我正在将chrome与–allow-file-access-from-files标志一起使用,并且控制台中没有任何安全性错误。有没有更简单的方法来获取我的webGl画布的屏幕截图?
我正在使用Pixi.js并尝试将动画帧保存到图像中.canvas.toDataUrl应该可以工作,但我得到的只是一个黑色矩形.在这里查看实例
我用来提取图像数据和设置图像的代码是:
var canvas = $('canvas')[0];
var context = canvas.getContext('2d');
$('button').click(function() {
var data = renderer.view.toDataURL("image/png", 1);
//tried var data = canvas.toDataURL();
$('img').attr('src', data);
})
Run Code Online (Sandbox Code Playgroud) canvas ×5
javascript ×5
webgl ×5
firefox ×1
html5 ×1
html5-canvas ×1
ios ×1
pixi.js ×1
todataurl ×1