Hi.
der Titel sagt soweit eig alles. Mein Ziel ist es einen Canvas als Bild zu speichern.
Da ich in HtmlUnit leider nichts direkt gefunden habe, dacht ich mir, ich könnte ja JS das Bild erzeugen lassen, dies mittels <img \> einbinden und dann das img speichern. Klappt auch erstmal. nur leider sind alle Bilder leer. Wenn ich mir den Quelltext ausgeben lasse hab ich aber auch den Eindruck, dass die Canvas nicht die richtige größe haben. (zumindest ne andere, als wenn ich mir Firefox rein schau).
Hier mal Auszüge aus meinem Projekt. (beschäftig mich aber auch erst etwa einen Tag mit HtmlUnit.
vielleicht hat hier ja wer noch nen Ratschlag für mich.
Gruß,
David
Edit:
Alle Bilder haben komischerweise die gleiche Source.
Noch nen Edit:
Hab testweise
eingebaut.
Das Problem: auch hier kommt kein richtiges Bild raus und die Maß des erzeugten Bildes sind definitiv falsch
der Titel sagt soweit eig alles. Mein Ziel ist es einen Canvas als Bild zu speichern.
Da ich in HtmlUnit leider nichts direkt gefunden habe, dacht ich mir, ich könnte ja JS das Bild erzeugen lassen, dies mittels <img \> einbinden und dann das img speichern. Klappt auch erstmal. nur leider sind alle Bilder leer. Wenn ich mir den Quelltext ausgeben lasse hab ich aber auch den Eindruck, dass die Canvas nicht die richtige größe haben. (zumindest ne andere, als wenn ich mir Firefox rein schau).
Hier mal Auszüge aus meinem Projekt. (beschäftig mich aber auch erst etwa einen Tag mit HtmlUnit.
Java:
final List canvas = page_neu.getElementsByTagName("canvas");
HtmlImage img;
File f;
HtmlElement createdElement;
HtmlElement b = page_neu.getBody();
for(int i = 0; i < canvas.size(); i++){
createdElement = (HtmlElement) page_neu.createElement("img");
createdElement.setAttribute("id", "canvas_img_" + i);
createdElement.setAttribute("src", "");
b.appendChild(createdElement);
page_neu.executeJavaScript("document.getElementById(\"canvas_img_" + i + "\").src=document.getElementsByTagName(\"canvas\")[" + i + "].toDataURL(\"image/png\");");
img = (HtmlImage) page_neu.getElementById("canvas_img_" + i);
f = new File ("img_" + i + ".png");
f.delete();
img.saveAs(f);
}
vielleicht hat hier ja wer noch nen Ratschlag für mich.
Gruß,
David
Edit:
Alle Bilder haben komischerweise die gleiche Source.
Code:
<img id="canvas_img_0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR4nO3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAATX68/0AAAAASUVORK5CYII="/>
<img id="canvas_img_1" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR4nO3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAATX68/0AAAAASUVORK5CYII="/>
<img id="canvas_img_2" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR4nO3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAATX68/0AAAAASUVORK5CYII="/>
<img id="canvas_img_3" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAAAxUlEQVR4nO3BMQEAAADCoPVPbQhfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA1v9QAATX68/0AAAAASUVORK5CYII="/>
Noch nen Edit:
Hab testweise
Code:
<canvas id="canvas" width="176" height="39"/>
Das Problem: auch hier kommt kein richtiges Bild raus und die Maß des erzeugten Bildes sind definitiv falsch
Zuletzt bearbeitet: