Donnerstag, Februar 27, 2020

Wie erstellen Sie ein Bild von einer web-Seite in PHP?

Wie können Sie das Rendern und speichern einer web-Seite als Bild in PHP, wahrscheinlich mit einer Breite von 600px. Wie kann ich die Darstellung einer Seite in PHP, ohne einen browser? Wie kann ich sparen Sie mit einer bestimmten Auflösung und Bildformat (jpeg)? Die Funktion ist ähnlich wie Google-Vorschau, außer es wird nicht angezeigt in ein rollover.

Ähnlich zu dieser Frage, die beantwortet wird, in C#. So speichern Sie eine web-Seite als Bild

Dank!

InformationsquelleAutor B Seven | 2011-05-03

2 Kommentare

  1. 7

    Sollten Sie sich wkhtmltoimage, die sehr einfach zu nutzen, über PHP:

    exec("../wkhtmltoimage --crop-w 600 http://example.com/output.png");

    Gibt es andere Optionen, und statt --crop-w oder --width 600 könnte es besser sein, nach untenSkala es mit GD oder imagemagick hinterher.

    • Danke. Sieht aus wie es konvertiert nur PDF und PS. Ich denke, ich könnte die Verwendung einer anderen Bibliothek zu konvertieren, zu jpg…
    • Nein, es gibt zwei Versionen davon. Die, die Sie gefunden haben, ist die wkhtmltopdf version. Aber es gibt auch die ..toimage binary, das ist, was Sie wollen. (Auch einfacher zu verwenden.)
    • Ich fand code.google.com/p/wkhtmltopdf/downloads/… für wkhtltoimage, aber es sagt, version 0.10 und depricated. Es gibt keine Dokumentation…
    • Das ist die version, die ich installiert haben wkhtmltoimage 0.10.0 rc2. Die Versionen veralten schnell, ich nehme an, dass ist der Grund, warum es wurde als veraltet markiert. Die Dokumentation ist in der Tat Dünn: code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp
    • Danke. Nach intensiven Forschungen, wie es aussieht, ist dies die einzige relativ einfache Lösungen für unix. Mac und Windows haben andere Lösungen, die einfacher scheinen(!). Auch, wenn das nicht funktioniert kann ich verwenden wkhtmltopdf und dann konvertieren zu jpeg mit ImageMagick. Es ist nicht sehr effizient, aber es ist kostenlos und praktikabel. Ich Frage mich, ob es OK Aussehen…
    • Gibt mir immer ziemlich scharf screenshots (ohne Skalierung) aus. Btw, können Sie einfach output.jpeg um ein JPEG-Bild. Und es gibt auch eine .exe – version für Windows (was ein bisschen schneller unter Linux/wine aus welchen Gründen auch immer, haha).
    • Es hat geklappt! Super einfach zu bedienen. Ich habe gerade die Datei hochgeladen und die Berechtigungen geändert. Ich verbrachte Stunden auf der Suche nach Lösungen, und dies war die einzige praktikable fand ich für unix. Danke!!!
    • Ja, ich habe auch versucht, einige der furchtbar umständlichen workarounds (Xfvb&firefox DISPLAY=:2), doch endete Sie sich auf diese. Es ist ziemlich Normen-konform und bietet hervorragende rendering-Ergebnisse als Chrome. Der einzige Nachteil ist, dass es nicht speedy. (Aber weder das umständliche Lösungen). — Auf jeden Fall gut zu hören!

  2. 2

    Können Sie nicht tun dies in reinen PHP, brauchen Sie immer einen externen renderer ein gutes Ergebnis zu erhalten.

    Ihre beste Wette wäre, die Nutzung einer externen Dienstleistung wie die browsershots.org API diese Weise werden Sie nicht produzieren eine zusätzliche Belastung auf Ihrem server.

    Wenn Sie Ressourcen haben, um zu brennen, konnte Sie eine andere Methode verwenden (läuft noch auf dem server, nur nicht PHP) genannt wkhtmltoimage wie in mario ‚ s Antwort. Denken Sie daran, dass dies nicht empfohlen werden (ehrlich gesagt, wahrscheinlich gar nicht möglich) auf shared-hosting.

    • Das scheint eine gute API in der Tat. Ich werde prüfen, ob sich auch (derzeit mit einem mehr schuppige service in einem Projekt..)

Kostenlose Online-Tests