Html5 canvas 从base 64图像作为源在画布中绘制
我正在使用裁剪插件从中选择一个图像区域。使用公共URL src图像时,裁剪预览会起作用。当src是base 64字符串时,它不是。 一直在谷歌上搜索可能的原因,但没有运气。 代码如下所示:Html5 canvas 从base 64图像作为源在画布中绘制,html5-canvas,base64,onload,Html5 Canvas,Base64,Onload,我正在使用裁剪插件从中选择一个图像区域。使用公共URL src图像时,裁剪预览会起作用。当src是base 64字符串时,它不是。 一直在谷歌上搜索可能的原因,但没有运气。 代码如下所示: function updatePreview(c) { if(parseInt(c.w) > 0) { var img = new Image, src = $('.jcrop-holder img').attr('src'), cvs
function updatePreview(c)
{
if(parseInt(c.w) > 0)
{
var img = new Image,
src = $('.jcrop-holder img').attr('src'),
cvs = document.getElementById('preview'),
ctx = cvs.getContext('2d');
img.crossOrigin = "Anonymous";
img.onload = function()
{
console.log('Onload event fired!');
var ctx = cvs.getContext("2d");
ctx.drawImage(img, c.x, c.y, c.w, c.h, 0, 0, cvs.width, cvs.height);
var dataURL = cvs.toDataURL();
new_image = dataURL;
}
img.src = src;
if ( img.complete || img.complete === undefined )
{
console.log('Undefined!');
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
img.src = src;
}
}
};
另外,当我开始拖动区域选择器时,使用code64图像,它会受到一定的延迟。我使用的基本64来自另一个画布,我在这里发现:最好的选择是使用原始画布作为drawimage()的源。问题仍然在于性能,但我会写另一个更具体的问题