Speichern einer HTML5-Leinwand als Bild auf einem Server
Generative Kunstprojekte erfordern oft die Möglichkeit, die erstellten Bilder auf dem Server zu speichern. Hier sind die Schritte:
-
Erstellen eines Bildes auf einem HTML5-Canvas:Verwenden Sie einen generativen Algorithmus, um ein Bild auf einem HTML5-Canvas zu erstellen.
-
Speichern der Leinwand als Bild auf dem Server: Um die Leinwand als Bild zu speichern, verwenden Sie JavaScript und PHP.
JavaScript-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/x-www-form-urlencoded");
ajax.send("imgData=" + canvasData);
}
Nach dem Login kopieren
PHP (testSave.php):
<?php
$data = $_POST['imgData'];
$file = "/path/to/file.png";
$uri = substr($data,strpos($data, ",") + 1);
file_put_contents($file, base64_decode($uri));
echo $file;
?>
Nach dem Login kopieren
Häufig Probleme:
-
Leere oder beschädigte Datei: Stellen Sie sicher, dass der Dateipfad beschreibbar ist und dass der Inhaltstyp in der JavaScript-Anfrage auf „application/x-www“ eingestellt ist -form-urlencoded."
-
Base64-Zeichenfolge: Die Konsole gibt eine große Base64-Zeichenfolge zurück kein Bildformat.
-
Falscher Inhaltstyp: Der Inhaltstyp sollte „image/png“ sein, wenn canvas.toDataURL() aufgerufen wird.
Zusätzliche Tipps:
- Cross-Origin Resource Sharing (CORS) kann die Anfrage verhindern vom Abschluss. Überprüfen Sie Ihre Servereinstellungen.
- Verwenden Sie einen Bildbetrachter, um die gespeicherte Datei zu validieren.
Das obige ist der detaillierte Inhalt vonWie speichere ich ein HTML5-Canvas-Bild auf einem Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!