2013-08-21 1 views
6

Я пытаюсь загрузить объект json, который имеет объект изображения. Объект изображения имеет базовые данные изображения 64 в качестве фона. Но я не могу использовать метод loadFromJSON.Данные базы данных Base64 не работают с loadfromJSON в fabricjs

Код:

var jsonDataSet = '{"objects":[{"type":"image","originX":"left","originY":"top","left":0,"top":0,"width":700,"height":600,"fill":"rgb(0,0,0)","overlayFill":null,"stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeLineJoin":"miter","strokeMiterLimit":10,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"selectable":false,"hasControls":true,"hasBorders":true,"hasRotatingPoint":true,"transparentCorners":true,"perPixelTargetFind":false,"shadow":null,"visible":true,"clipTo":null,"src":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn4AAAFPCAYAAADTHsP1AAAgAElEQ…Lv/vuU1wVsyvXK+Kks1f6gffSCThZ1km3u6NFklCnFes//AbZzi+iGF3/7AAAAAElFTkSuQmCC","filters":[]}],"background":""}'; 

canvas.loadFromJSON (jsonDataSet); 

canvas.renderAll(); 

Он отображает сообщение об ошибке, как "Error loading data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn4AAAFPCAYAAADTHsP1AAAgAElEQ…Lv/vuU1wVsyvXK+Kks1f6gffSCThZ1km3u6NFklCnFes//AbZzi+iGF3/7AAAAAElFTkSuQmCC "

ответ

4

Если вы используете последнюю версию fabric.js это ошибка. Я исправил это с запросом на тяну # 800: https://github.com/kangax/fabric.js/pull/800.

К сожалению, ваш базовый код dataURL вашего предыдущего кода неправильный - он имеет три точки (lEQ ... Lv/vuU). Возможно, побочный эффект от копирования.

+1

спасибо. Добавлены ваши изменения, и он работает как ожидалось. – user2571818

+0

Три точки не являются побочным эффектом копирования, они фактически добавлены fabric.js. Посмотрите на вывод в консоли здесь: http://jsfiddle.net/h9q6Lorg/ – BruceHill

+2

Они не добавлены fabric.js. Это ошибка/ограничение console.log в chrome devtools (https://code.google.com/p/chromium/issues/detail?id=464560). http://jsfiddle.net/devxyrro/ – Kienz