B
ByeBye 274568
Ich möchte gern eine mit canvas erzeugte und bereits angezeigte Grafik zusätzlich mit einer URL anbieten (letztlich ein Link, der beim Klicken auf die Grafik zur größeren Version führt). Ich möchte nicht umständlich mit windows/popups arbeiten, sondern die reine URL haben. Das Vorschaubild funktioniert problemlos und wird derzeit wie folgt erzeugt:
Das Canvas-Element ist zusätzlich in einem DIV-Container untergebacht, weshalb hier nach offsetWidth und offsetHeight gefragt wird. Eine festgesetzte Grafik ist's wegen des Responsive-Designs nicht; es passt sich hervorragend der Größe an. Die entscheidende Generierung der Grafik erfolgt schließlich mit new Chart(ct1).Line(lineChartData1,options);. Wie auch immer, das läuft einwandfrei.
Um eine URL aus einem Canvas-Element zu erzeugen, gibt es toDataURL(), doch damit habe ich Probleme:
Das aufgeführte Beispiel erzeugt eine URL und gibt sie beispielhaft als Text aus. Das funktioniert auch - zumindest teilweise: 2 arge Probleme habe ich damit:
Also, was ist falsch im Code?
HTML:
<canvas id="image"></canvas>
var ct1 = document.getElementById("image").getContext("2d");
ct1.canvas.width = document.getElementById("image").offsetWidth;
ct1.canvas.height = document.getElementById("image").offsetHeight;
var Chart1 = new Chart(ct1).Line(lineChartData1,options);
Um eine URL aus einem Canvas-Element zu erzeugen, gibt es toDataURL(), doch damit habe ich Probleme:
HTML:
var url = document.getElementById("image").toDataURL();
document.write(url);
Das aufgeführte Beispiel erzeugt eine URL und gibt sie beispielhaft als Text aus. Das funktioniert auch - zumindest teilweise: 2 arge Probleme habe ich damit:
- Die URL wird zwar angezeigt (auch die grafik mittels popup), enthält aber nichts, nur eine freie Fläche und nicht das eigentliche Bild.
- Ich möchte dem Canvas natürlich noch die Option geben, eine höhere Auflösung generieren zu lassen, wie ich es mit ct1.canvas.width und ct1.canvas.height beim eigentlichen Bild schon erledigt habe.
Also, was ist falsch im Code?