将html对象保存到firebase

时间:2015-06-10 13:46:16

标签: javascript canvas ember.js firebase emberfire

我在ember.js工作,我的项目有一个图像裁剪机制。默认情况下,这会返回一个画布对象和重绘裁剪图像所需的一些数据。

但是当我尝试将canvas对象保存到firebase时,它将其保存为类似[htmlObject Canvas]之类的东西,所以当我尝试获取记录并显示画布时,它会显示而不是实际的画布对象

如何将画布对象保存到firebase以便稍后用作实际画布。

1 个答案:

答案 0 :(得分:3)

您必须序列化和反序列化图像:

function serialize(canvas) {
    return canvas.toDataURL();
}

function deserialize(data, canvas) {
    var img = new Image();
    img.onload = function() {
        canvas.width = img.width;
        canvas.height = img.height;
        canvas.getContext("2d").drawImage(img, 0, 0);
    };

    img.src = data;
}

基于this answer

更新1

canvas.toDataURL()方法能够通过压缩将数据压缩为JPEG。与PNG相比,使用甚至95%的质量将大大降低照片的文件大小。

使用此:

canvas.toDataURL({
   format: 'jpeg',
   quality: 0.9
});

基于this answer