EaselJS: есть ли какой-либо способ экспортировать фигуру в файл изображения?

#createjs #easeljs

#createjs #easeljs

Вопрос:

У меня есть проект в CreateJS, который я хотел бы переделать без CreateJS, но кажется, что все мои изображения находятся в формате формы EaselJS. Например:

 this.shape_1 = new cjs.Shape();
this.shape_1.graphics.f("#465762").s().p("AgOAOQgFgFAAgJQAAgHAFgHQAHgFAHgBQAIABAHAFQAFAHAAAHQAAAJgFAFQgHAHgIgBQgHABgHgHg");
this.shape_1.setTransform(43.4,42,0.747,0.747);
  

Есть ли какой-нибудь метод, который я мог бы использовать для экспорта этого в файл изображения?

Ответ №1:

Вы можете экспортировать любой объект отображения EaselJS, кэшируя его, а затем экспортируя dataURL. Обратите внимание, что вы должны знать исходные границы. Если вам нужен больший кеш, просто увеличьте scale параметр.

 this.shape_1.cache(x, y, w, h, [scale]);
var url = this.shape_1.getCacheDataURL();
  

К сожалению, этот метод не поддерживает параметры холста.toDataURL(), поэтому, если вы этого хотите, вы можете напрямую обращаться к кешу:

 this.shape_1.target.cacheCanvas.toDataURL(…[type], [encoderOptions]);
  

Затем вы можете использовать dataURL несколькими способами. Вот статья об этом. В качестве альтернативы, просто поместите сгенерированный кэш в DOM и щелкните по нему правой кнопкой мыши, чтобы сохранить.

 document.body.appendChild(this.shape_1.target.cacheCanvas);
  

Документы: