Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Frage zu FAQ 22.1. Wie kann ich Thumbnails von einer Webseite erzeugen lassen?

33 views
Skip to first unread message

Ralf Zschemisch

unread,
May 28, 2007, 5:50:40 AM5/28/07
to
Hallo,

angeregt durch Snap Shots
http://blog.myoos.de/geschenk/Pop-Art-von-r23-c-1.html
http://www.snap.com/about/shots.php

Wollte ich mit PHP Thumbnails von einer Webseite erzeugen.

Laut

22.1. Wie kann ich Thumbnails von einer Webseite erzeugen lassen?
http://www.php-faq.de/q/q-grafik-webseite.html

funktioniert dies mit

kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk

in einer Konsole.

Leider wird aber mit

<?php
$cmd = "kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk";
system($cmd,$return_value);
($return_value == 0) or die("returned an error: $cmd");
?>

kein Bild erzeugt. Der Wert in $return_value ist 127.

Was mache ich hier falsch?

cu

r23


--
Mein Skizzenbuch
http://blog.myoos.de/

Claus Reibenstein

unread,
May 28, 2007, 6:41:05 AM5/28/07
to
Ralf Zschemisch schrieb:

> Leider wird aber mit
>
> <?php
> $cmd = "kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk";
> system($cmd,$return_value);
> ($return_value == 0) or die("returned an error: $cmd");
> ?>
>
> kein Bild erzeugt. Der Wert in $return_value ist 127.

Vermutlich läuft kwebdesktop nur korrekt in einer KDE-Umgebung. Diese
stellt system() jedoch nicht zur Verfügung.

Woher weißt Du eigentlich, dass $return_value == 127 ist? Du gibst den
Wert nirgends aus.

Gruß. Claus

Helmholtz Ralf

unread,
May 28, 2007, 7:46:16 AM5/28/07
to
Ralf Zschemisch schrieb:

> Hallo,
>
> angeregt durch Snap Shots
> http://blog.myoos.de/geschenk/Pop-Art-von-r23-c-1.html
> http://www.snap.com/about/shots.php
>
> Wollte ich mit PHP Thumbnails von einer Webseite erzeugen.
>
> Laut
>
> 22.1. Wie kann ich Thumbnails von einer Webseite erzeugen lassen?
> http://www.php-faq.de/q/q-grafik-webseite.html
>
> funktioniert dies mit
>
> kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk
>
> in einer Konsole.
>
> Leider wird aber mit
>
> <?php
> $cmd = "kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk";
> system($cmd,$return_value);
> ($return_value == 0) or die("returned an error: $cmd");
> ?>
Weil der HTTPD User andere Environment Settings besitzt und der Pfad für
die KDE bin nicht gesetzt ist. Gib mal ein:

echo $Path

ein und du wirst sehen von was ich rede.

Daher musst du den kompletten Pfad angeben.

z.B. /usr/kde/3.5/bin/kwebdesktop

Jens Peter Moeller

unread,
May 29, 2007, 4:15:40 AM5/29/07
to
Ralf Zschemisch schrieb:

> Wollte ich mit PHP Thumbnails von einer Webseite erzeugen.
>
> Laut
>
> 22.1. Wie kann ich Thumbnails von einer Webseite erzeugen lassen?
> http://www.php-faq.de/q/q-grafik-webseite.html
>
> funktioniert dies mit
> kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk
> in einer Konsole.

Aber doch sicher nur unter KDE, oder? Ich hatte mich nämlich
auch mal damit beschäftigt und war zu dem Ergebnis gekommen,
daß allein kdebase nämlich nicht ausreicht. Es braucht auch
einen laufenden X-Server. Umgehen lässt sich das mit Xfvb, ein
virtueller X-Server ohne physikalische Ein- und Ausgabedevices.
Das Teil muss man starten und kwebdesktop dann irgendwie
dahin umlenken - ich krieg das jetzt aus dem Gedächtnis nicht
mehr zusammen.

Auch gab es noch eine grundlegendes Problem aufgrund eines
Bugs in khtml - Die Screenshots zeigten alle Webseiten ohne
Bilder. Ein Update von KDE auf 3.5.6 behob das.


Gruß
JPM

Kristian Köhntopp

unread,
May 29, 2007, 5:39:00 AM5/29/07
to
Ralf Zschemisch wrote:
> <?php
> $cmd = "kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk";
> system($cmd,$return_value);
> ($return_value == 0) or die("returned an error: $cmd");
> ?>
>
> kein Bild erzeugt. Der Wert in $return_value ist 127.
>
> Was mache ich hier falsch?

Du hast den Rest der Umgebung nicht, etwa ein KDE + einen X Server. Das
braucht khtml (die Renderkomponente von kwebdesktop und konqueror) nämlich
um das Zeugs zu rendern.

Die ganze Renderpipeline sieht so aus:

1. X starten

kris@linux:~> Xvfb :10 &
[1] 11237
kris@linux:~> Could not init font path element /usr/share/fonts/TTF/,
removing from list!
Could not init font path element /usr/share/fonts/OTF, removing from list!
Could not init font path element /usr/share/fonts/CID/, removing from list!

2. Display umlenken

kris@linux:~> export DISPLAY=:10

3. Rendern

kris@linux:~> kwebdesktop 1024 768 bla.png
http://www.php-faq.de/q/q-grafik-webseite.html
Xlib: extension "XInputExtension" missing on display ":10.0".
Failed to get list of devices
Xlib: extension "XInputExtension" missing on display ":10.0".
Failed to get list of devices
kbuildsycoca running...
FreeFontPath: FPE "/usr/share/fonts/misc/" refcount is 2, should be 1;
fixing.
Could not init font path element /usr/share/fonts/TTF/, removing from list!
Could not init font path element /usr/share/fonts/OTF, removing from list!
Could not init font path element /usr/share/fonts/CID/, removing from list!

4. Resizen + Typ ändern

kris@linux:~> convert -resize 256x192 bla.png fasel.jpg

Das kann man natürlich scripten. Es ist außerdem möglich, mehrere
Renderpipes auf dasselbe Display zu legen. Ich denke mal, wenn man mehr als
10 Renderpipes parallel haben will (passend viele CPUs vorausgesetzt),
sollte man sich noch einen zweiten X-Server gönnen.

Kris

--
Kristian =?iso-8859-15?q?K=F6hntopp?= <kr...@xn--khntopp-90a.de>

Jens Peter Moeller

unread,
May 29, 2007, 5:56:43 AM5/29/07
to
Kristian Köhntopp schrieb:

> Ralf Zschemisch wrote:
>> <?php
>> $cmd = "kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk";
>> system($cmd,$return_value);
>> ($return_value == 0) or die("returned an error: $cmd");
>> ?>
>>
>> kein Bild erzeugt. Der Wert in $return_value ist 127.
>>
>> Was mache ich hier falsch?
>
> Du hast den Rest der Umgebung nicht, etwa ein KDE + einen X Server. Das
> braucht khtml (die Renderkomponente von kwebdesktop und konqueror) nämlich
> um das Zeugs zu rendern.
>
> Die ganze Renderpipeline sieht so aus:
[..]

Genau so hatte ist es damals auch hinbekommen.
Danke, daß Du es nochmal aufgeschrieben hast. Ich hatte das
Projekt damals auf Eis gelegt. Aber wenn ich weitermache,
brauche ich es mir jetzt nicht mehr zusammen zu suchen. ;-)

Gruß
JPM

Ralf Zschemisch

unread,
May 29, 2007, 5:05:02 PM5/29/07
to
Am Tue, 29 May 2007 10:15:40 +0200 schrieb Jens Peter Moeller:

Hallo,

>> funktioniert dies mit
>> kwebdesktop 300 300 info.png http://blog.myoos.de/geschenk
>> in einer Konsole.
>
> Aber doch sicher nur unter KDE, oder?

Ich kenne mich mit KDE fast gar nicht aus. Habe es mal vor
Jahren gesehen - ich komme mit GNOME unter Linux
besser zurecht.

> Ich hatte mich nämlich
> auch mal damit beschäftigt und war zu dem Ergebnis gekommen,
> daß allein kdebase nämlich nicht ausreicht.

Im Linux - Club
http://www.linux-club.de/ftopic37934.html

Fand ich die Idee mit ImageMagik Screenshots zu erstellen
sehr interessent.

> Es braucht auch
> einen laufenden X-Server. Umgehen lässt sich das mit Xfvb, ein
> virtueller X-Server ohne physikalische Ein- und Ausgabedevices.

Unter
http://linuxwiki.de/BildschirmFoto
fand ich eine Lösung

und die Entwickler von der gd-lib stellen auch etwas zur Verfügung
http://www.boutell.com/webthumb/

Da mir dies etwas wild wurde (ich halt (noch) keine Ahnung
von xfvb habe) fand ich den Hinweis zu dem kostenlosen
Anbieter für mich hilfreich
http://www.thumbshots.org/

Wie man dies in einem PHP Scrit einbinden kann ist hier
http://www.bie.no/products/phpodp/
vermutlich gelöst.

> Auch gab es noch eine grundlegendes Problem aufgrund eines
> Bugs in khtml - Die Screenshots zeigten alle Webseiten ohne
> Bilder. Ein Update von KDE auf 3.5.6 behob das.

Danke

cu

ralf

Ralf Zschemisch

unread,
May 29, 2007, 5:19:16 PM5/29/07
to
Am Tue, 29 May 2007 11:39:00 +0200 schrieb Kristian Köhntopp:

Hallo Kristian,

>> Was mache ich hier falsch?
>
> Du hast den Rest der Umgebung nicht, etwa ein KDE + einen X Server. Das
> braucht khtml (die Renderkomponente von kwebdesktop und konqueror) nämlich
> um das Zeugs zu rendern.


> Die ganze Renderpipeline sieht so aus:
>
> 1. X starten
>
> kris@linux:~> Xvfb :10 &

Ich glaube ich installiere mir Xvfb jetzt doch ;)

> 2. Display umlenken
>
> kris@linux:~> export DISPLAY=:10

> Das kann man natürlich scripten. Es ist außerdem möglich, mehrere


> Renderpipes auf dasselbe Display zu legen. Ich denke mal, wenn man mehr als
> 10 Renderpipes parallel haben will (passend viele CPUs vorausgesetzt),
> sollte man sich noch einen zweiten X-Server gönnen.

Danke!

cu

ralf

Jens Peter Möller

unread,
Jun 4, 2007, 3:35:25 PM6/4/07
to
Ralf Zschemisch schrieb:

> Am Tue, 29 May 2007 10:15:40 +0200 schrieb Jens Peter Moeller:

>> einen laufenden X-Server. Umgehen lässt sich das mit Xfvb, ein
>> virtueller X-Server ohne physikalische Ein- und Ausgabedevices.
>

> und die Entwickler von der gd-lib stellen auch etwas zur Verfügung
> http://www.boutell.com/webthumb/

Und das funktioniert bei mir gut und zuverlässig. Das Script
muß noch etwas erweitert werden, damit mozilla im Vollbild
läuft. Dann noch ein convert mit crop und resize an die pipe,
und fertig sind die perfekten Screenshots auf der Kommandozeile.

kwebdesktop ging bei mir kaum. Viele Webseiten brachten es
zum Absturz, Fehlermeldungen von KDE oder einem DCOP, was immer
das ist, ohne Ende, usw. usf.


Gruß
JPM

Ralf Zschemisch

unread,
Jun 9, 2007, 7:27:03 PM6/9/07
to
Am Mon, 04 Jun 2007 21:35:25 +0200 schrieb Jens Peter Möller:

>> und die Entwickler von der gd-lib stellen auch etwas zur Verfügung
>> http://www.boutell.com/webthumb/
>
> Und das funktioniert bei mir gut und zuverlässig. Das Script
> muß noch etwas erweitert werden, damit mozilla im Vollbild
> läuft. Dann noch ein convert mit crop und resize an die pipe,
> und fertig sind die perfekten Screenshots auf der Kommandozeile.

Die Scrennshots werden in dem Perl-Skript mit
system("xwd -root -silent | xwdtopnm");
erstellt.


Bei installiertem Image Magick würde dir allerdings 'import' zur
Verfügung stehen.

Screenshot von gesamten Desktop:
import -window root screenshot.png

Mittels sleep läßt sich auch eine Verzögerung
einstellen (hier 5 Sekunden):
sleep 5; import -window root screenshot.png


Ansstelle von xwd kann man auch Scort verwenden
scrot -d sec pfad/dateiname.png

http://www.tuxfutter.de/wiki/Scrot


> kwebdesktop ging bei mir kaum. Viele Webseiten brachten es
> zum Absturz, Fehlermeldungen von KDE oder einem DCOP, was immer
> das ist, ohne Ende, usw. usf.

In meiner Umgebung funktioniert nun kwebdesktop

Hier die dynamischen Bilder in einer Flash-Gallerie
http://blog.myoos.de/geschenk/media/shots/index.php

Wobei ich dem Rechner *Zeit* zur Erstellung eines Bildes
gebe.

DCOP
http://de.wikipedia.org/wiki/Desktop_Communication_Protocol

Ich habe nur noch folgende Meldungen in der Apache
error - Log

Xlib: extension "XInputExtension" missing on display ":x.0".
Faild to get list devices
kbuildsycoca running ...

und damit könnte ich fast leben ;)

Jens Peter Moeller

unread,
Jun 11, 2007, 5:37:55 AM6/11/07
to
Ralf Zschemisch schrieb:

> Am Mon, 04 Jun 2007 21:35:25 +0200 schrieb Jens Peter Möller:
>
>>> und die Entwickler von der gd-lib stellen auch etwas zur Verfügung
>>> http://www.boutell.com/webthumb/
>>
>> Und das funktioniert bei mir gut und zuverlässig. Das Script
>> muß noch etwas erweitert werden, damit mozilla im Vollbild
>> läuft. Dann noch ein convert mit crop und resize an die pipe,
>> und fertig sind die perfekten Screenshots auf der Kommandozeile.
>
> Die Scrennshots werden in dem Perl-Skript mit
> system("xwd -root -silent | xwdtopnm");
> erstellt.
>
>
> Bei installiertem Image Magick würde dir allerdings 'import' zur
> Verfügung stehen.
>
> Screenshot von gesamten Desktop:
> import -window root screenshot.png

Hatte ich auch versucht, aber irgendwie so nicht hinbekommen. Man
müsste ja auch erstmal das richtige -window bestimmen. Wie kommst
Du auf root?

Egal. xwd funktiontiert sehr gut. Nur die mehrfache Umwandlung mit
xwdtopnm und dann noch pnmtojpeg war Unfug, zumal so scheinbar auch
kein Truecolor-Bild mehr rauskommt. Ich habe jetzt nach xwd gleich
convert in der pipe.

Auch nutze ich ein aktuellen Firefox, anstelle des angestaubten
Mozilla 1.7. Und die Komandozeilen-Parameter -height und -width,
mit denen man die Größe des Browsers beim Aufruf bestimmen können
soll funktionieren nicht, mit keiner Version. Also vor dem Abruf
der zu fotografierenden Seite noch per Javascript Browser "groß machen".

Letztlich habe ich die Lösung auch kwebdesktop vorgezogen, weil
es doch immer noch die eine oder andere Seite gibt, die von der
khtml-Engine nicht wie gewünscht angezeigt wird.


Gruß
JPM

0 new messages