Saschav2411
Grünschnabel
Hallo,
ich bin gerade dabei Bilder in ein Canvas zu intergrieren und es dann als png auf meinem Server zu speichern
Meine aktuelle Css - Javascript und Canvasausgabe
CSS
Script
Canvas erzeugen
Jetzt muss ich die DataURL, die in einem Base64 String ausgegeben wird per Ajax zrückkonventieren.
Hab auf stackoverflow auch viele Beispiele gefunden, allerdings hab ich mich jetzt eine woche ausgetobt und es einfach nicht hinbekommen es alles richtig zusammen zusetzen. vielleicht kann mir ja jemand etwas unter die Arme greifen
Das müsste die Ajax-Funktion sein um den Base64-String
Und das hier der Code zum convertieren
save.php
Der Ajax Code scheint die Datei ja zu konvertieren und gleichzeitig zu speichern. Stimmt das?
Benötige ich dann überhaupt die save.php****
Wäre nett wenn mir jemand beim zusammenfügen helfen könnte dass es funktioniert,
sodass ich mal ein komplettes Beispiel habe, an dem ich es lernen kann.
Besten Dank und schönes Wochenende
Sascha
http://permadi.com/blog/2010/10/html5-saving-canvas-image-data-using-php-and-ajax/
http://www.nihilogic.dk/labs/canvas2image/
ich bin gerade dabei Bilder in ein Canvas zu intergrieren und es dann als png auf meinem Server zu speichern
Meine aktuelle Css - Javascript und Canvasausgabe
CSS
Code:
<style type="text/css">
div#canvas {
height:500px;
width:500px;
}
</script>
Script
Code:
<script type="text/javascript">
$('#canvas').html2canvas({
onrendered : function(canvas) {
var img = canvas.toDataURL();
}
});
</script>
Canvas erzeugen
Code:
<div id="canvas">
<table class="rundeEcken" background="http://www.hd-wallpaper-area.com/wallpaper/thumbnails/X%20MAS%20607_770x0.jpg">
<tr>
<td class="rundeEcken" width="50px" height="50px"><?php echo "<img class='rundeEcken1' src='http://graph.facebook.com/" . $friends[data][1][id] ."/picture'><br>";?></td>
</tr>
</table>
</div>
Jetzt muss ich die DataURL, die in einem Base64 String ausgegeben wird per Ajax zrückkonventieren.
Hab auf stackoverflow auch viele Beispiele gefunden, allerdings hab ich mich jetzt eine woche ausgetobt und es einfach nicht hinbekommen es alles richtig zusammen zusetzen. vielleicht kann mir ja jemand etwas unter die Arme greifen
Das müsste die Ajax-Funktion sein um den Base64-String
Code:
function saveImage() {
var canvasData = canvas.toDataURL("image/png");
var ajax = new XMLHttpRequest();
ajax.open("POST",'testSave.php',false);
ajax.onreadystatechange = function() { console.log(ajax.responseText);
} ajax.setRequestHeader('Content-Type', 'application/upload');
ajax.send("imgData="+canvasData); }
Und das hier der Code zum convertieren
Code:
function base64_to_jpeg( $base64_string, $output_file ) { $ifp = fopen( $output_file, "wb" );
fwrite( $ifp, base64_decode( $base64_string) );
fclose( $ifp );
return( $output_file );
}
$image = base64_to_jpeg( $my_base64_string, 'tmp.jpg' );
save.php
Code:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
// Get the data
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
// Remove the headers (data:,) part.
// A real application should use them according to needs such as to check image type
$filteredData=substr($imageData, strpos($imageData, ",")+1);
// Need to decode before saving since the data we received is already base64 encoded
$unencodedData=base64_decode($filteredData);
//echo "unencodedData".$unencodedData;
// Save file. This example uses a hard coded filename for testing,
// but a real application can specify filename in POST variable
$fp = fopen( ‘test.png’, ‘wb’ );
fwrite( $fp, $unencodedData);
fclose( $fp );
}
?>
Der Ajax Code scheint die Datei ja zu konvertieren und gleichzeitig zu speichern. Stimmt das?
Benötige ich dann überhaupt die save.php****
Wäre nett wenn mir jemand beim zusammenfügen helfen könnte dass es funktioniert,
sodass ich mal ein komplettes Beispiel habe, an dem ich es lernen kann.
Besten Dank und schönes Wochenende
Sascha
http://permadi.com/blog/2010/10/html5-saving-canvas-image-data-using-php-and-ajax/
http://www.nihilogic.dk/labs/canvas2image/