Canvas in PHP

Alice

Erfahrenes Mitglied
Hallo Leute.

Ich habe eine Frage und bin komplett aus der Materie raus.

Ich habe ein kleines Canvas Script gefunden, welches sich als sehr nützlich erwiesen hat. Dieses Skript würde ich gerne in ein PHP-Tool von mir integrieren. Jedoch dürfen Güäste/Benutzer nicht sehen, dass Canvas im Spiel ist. Ist das möglich?
 
*confused* Canvas kenne ich nur von HTML5 und Javascript. Und ohne das PHP-Tool und dieses Skript mit Canvas zu sehen, kann man die Frage nur schwer beantworten.
 
Ich möchte eine SVG ins PNG Format konvertieren, was mit Canvas sehr leicht, schnell und vorallem Fehlerfrei funktioniert. Alles wird 1:1 gerendert nicht wie ImageMagick mit 1000 Bugs. Jedoch sollen die Gäste/Benutzer das nicht sehen können. Also den Canvas-Quelltext und die SVG-Datei/en.
 
Genau, du solltest dich nach einer serverseitigen Lösung umschauen. Falls dein Server nur PHP unterstützt und sonst sehr eingeschränkt ist, könntest du die Bilder auch auf deinem Rechner rendern. Oder muss es regelmäßig und/oder dynamisch in irgendeiner Weise sein?
 
Hallo.

Ja es werden täglich hunderte Dateien umgewandelt.

Ich bin so sehr von der Qualität von "Canvas" angetan, dass ich nicht weiss, wie ich das ohne besser bzw. gleichwertig lösen könnte. ImageMagick hat viele Bugs und kann auch nicht alles.

Haben Server keinen eigenen Browser installiert? Vielleicht könnte ich die SVG-Datei intern auf dem Browser des Server öffnen, umwandeln und ausgeben?

Das einzige Problem an Canvas ist, dass die Anzeigequalität vom Browser abhängig ist.
 
Nein, auf dem Server gibt es keinen Browser in dem Sinne. Unter node.js jedoch ein Äquivalent zu Canvas, siehe mein Posting #4. Das müsstest Du prüfen, ob node verfügbar ist und ob die Qualität ebenso gut ist wie bei dem clientseitigen Canvas.
Oder könnte es eine Alternative sein, die Grafiken in deinem Browser bzw. dem des Webentwicklers zu konvertieren und dann hochzuladen? Skriptgesteuert kann man auch hunderte automatisch umwandeln. Irgend wie müssen sie ja wahrscheinlich ohnehin bereit gestellt und hoch geladen werden. Oder geschieht das auch automatisch?
 
Die SVG-Dateien werden nach Benutzeranforderungen aus einem PHP-Skript zusammengepuzzelt und dann erst einmal auf dem Server gespeichert. Im nächsten Schritt kommt dann die Umwandlung ins PNG-Format. Leider bietet mein Anbieter keine nützlichen Tools wie node.js, Inkscape oder Cairo an.

Ich habe die Dateien testweise auf meinem PC umwandeln lassen (funktioniert gut), aber was, wenn mein Internet mal ausfällt oder mein PC ausgeht?

Ich hatte die Verbindung (Server + Mein PC) mit winscp hergestellt.
 
Zuletzt bearbeitet:
Nein, auf dem Server gibt es keinen Browser in dem Sinne.
Nachdem ein Server erstmal nichts anderes als Mainboard+CPU+Internetzugang+OS ist, kannst du natürlich auch einen Browser installiert haben ;)
Die Frage ist eher, ob auf dem von dir gemieteten Server einer installiert ist.
Leider bietet mein Anbieter keine nützlichen Tools wie node.js, Inkscape oder Cairo an.
So wie sich das anhört, hast du einen klassischen Server, der nur PHP sowie statisches Ausliefern (von HTML, Bilddateien etc.) kann.

Ich bin so sehr von der Qualität von "Canvas" angetan, dass ich nicht weiss, wie ich das ohne besser bzw. gleichwertig lösen könnte.
Ich bin sicher, dass es viele Alternativlösungen gibt. Deine Aufgabe heißt nämlich "render svg to png", und das sollte eine ziemlich bekannte Problemstellung sein ;) Die Frage ist nur, ob Softwareprodukte existieren, die auch auf deinem Server laufen, sprich bei dir in PHP sind. Daran zweifle ich. Hat dein Server wenigstens ImageMagick?
Insgesamt sehe ich das so:
  • Du hast ImageMagick und probierst es darüber, siehe Convert SVG image to PNG with PHP.
  • Du suchst dir ersetzend einen anderen Serveranbieter.
  • Du suchst dir ergänzend einen anderen Serveranbieter, über dessen Server du die Konvertierung abwickelst. Das ist erstmal ein Overkill nur dafür, dass dein Server leider nichts anderes unterstützt.
  • Du lieferst SVG-Dateien aus. Ist das gänzlich ausgeschlossen?
 
An der Stelle muss ich jetzt auch meinen Senf dazugeben.

Alles wird 1:1 gerendert nicht wie ImageMagick mit 1000 Bugs.
Von was für Bugs redest du denn eigentlich? Also sehen deine gerenderten SVGs mit ImageMagick quasi anders aus, als mit dem HTML-Canvas? Eigentlich sollte das nicht der Fall sein, da SVGs eine eindeutige Beschreibung dessen sind, was vom Computer gezeichnet werden soll. Vielleicht lädst du mal eine dieser SVGs hoch, bei denen solche Bugs auftreten. Womöglich gibt es ja einen einfachen Fix und dann könntest du ImageMagick per Skript benutzen...

Gruß Technipion
 
Zurück