Преобразование диаграммы jqplot в изображение

Я пытаюсь преобразовать всю гистограмму jqplot, включая легенду и заголовок диаграммы, в изображение. Однако, используя toDataURL и шаги в этом сообщении (Преобразовать холст в изображение и открыть в новом окне, используя ruby ​​on rails и javascript), я могу только преобразовать диаграмму с ее осью и меткой оси в изображение.

Поскольку легенда и заголовок диаграммы не отображаются на холсте, они не преобразуются.

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


person Mich    schedule 08.06.2011    source источник


Ответы (2)


Поскольку заголовок и оси - это div, а не img или canvas, я думаю, что единственным решением было бы написать каждый текст на холсте с помощью функции fillText(). Затем преобразуйте это в изображение.

Вы можете написать на холсте так: fillText("Hello World!", x, y);

Теперь вы также можете добавить это в jQplot в качестве плагина :)

Удачи

person Tim    schedule 08.06.2011
comment
Спасибо за отличное предложение, Тим. Но легенда диаграммы - это таблица HTML, поэтому мне было интересно, можно ли использовать fillText() для записи таблицы на холсте. Если это возможно, как мне этого добиться? - person Mich; 09.06.2011

Я работал над голой реализацией. Это связано здесь https://bitbucket.org/cleonello/jqplot/issue/14/export-capabilities#comment-554274 Он должен поддерживать каждый пример, который распространяется с jqplot.

person Kevin Risden    schedule 11.07.2011
comment
У меня есть требования, при которых я должен отображать 120 диаграмм на экране. И IE9 зависает. поэтому я хочу использовать ваш код для преобразования диаграммы jqplot в изображение, а затем уничтожить объект jqplot, чтобы избежать проблемы с утечкой памяти. Итак, я хочу задать вопрос, ваш метод возвращает строку, как мне отобразить эту строку в виде изображения в браузере? Спасибо - person Thang Pham; 09.01.2013
comment
@ThangPham Вы должны иметь возможность установить для тега img src возвращаемую строку, и она будет отображаться. - person Kevin Risden; 05.07.2013