by:

Wer schon immer mal einen Screenshot von einer gesamten Webseite haben wollte, aber nicht die einzelnen Bilder
zusammen schneiden mag, bzw. das ganze gerne aus einem eigenen Programm anbieten würde, kann
seit heute die Codejungle Open API verwenden.

Hier ein einfaches PHP Bsp.:
Code

<?php
    
    
/**
    * Website Thumbnail
    * creates a thumbnail of given url
    *
    * @param $url string
    * @param $size string optional could be large or crop
    * @return string url of generated thumbnail
    * @author andreas beder <office@codejungle.org>
    * @license http://opensource.org/licenses/gpl-license.php GNU Public License
    **/
    
    
function website_thumbnail($url$size){
    
    $Curl_Session curl_init("http://www.codejungle.org/api/thumb.php");
    
    curl_setopt($Curl_SessionCURLOPT_POST1);
    
    curl_setopt($Curl_SessionCURLOPT_POSTFIELDS"url=$url&size=$size");
    
    curl_setopt($Curl_SessionCURLOPT_FOLLOWLOCATION1);
    
    curl_setopt($Curl_SessionCURLOPT_RETURNTRANSFER1);
    
    $response curl_exec($Curl_Session);
    
    curl_close($Curl_Session);
    
    $xml simplexml_load_string($response);
    
    return $xml;
    }
    
    
?>
Anforderungen für das Beispiel sind:
PHP5 mit curl und simplexml

Das ganze geht natürlich auch über die Shell:
shell> curl -F 'url=http://www.google.com' http://www.codejungle.org/api/thumb.php

Ich empfehle den Script im Hintergrund laufen zu lassen, da ein Request schon mal 20 Sekunden dauern kann.
Wem das zu lange dauert, kann sich auch bei mir melden, ich gebe gerne Optimierungstipps.
Ausserdem würdest du mir und anderen Nutzern einen Gefallen tun, wenn du das Thumbnail nach dem erstellen bei dir hostest,
da sonst die Gefahr besteht, dass mein Server die Last nicht tragen kann.

Ich hoffe euch gefällt meine neue API, wer Anregungen, Fragen oder Kritik hat, kann mir gerne etwas schreiben.

Happy Hacking

Andreas


http://www.codejungle.org/api



Name:
hallo ferdi,

danke zuersteinmal für dein kommentar.

Zu deinen Fragen:
o) Die Zeit bis zum Abbruch des Scripts (via Shell) bei nicht erreichbaren Servern finde ich mit 90 Sekunden viel zu hoch.
Es gibt die option --connect-timeout auf der konsole, im script kann man das mit folgener option steuern:
curl_setopt($Curl_Session, CURLOPT_TIMEOUT, 60);
o) Grafik hat 99 dpi bei 32 Bit - Zufall oder Absicht? (Dateigröße, zwar 'vernachlässigbar' aber naja...)
Zufall
o) Seiten bzw. Elemente bei denen keine Hintergrundfarbe gesetzt ist werden mit grau ("Safari-Grau"?) wiedergegeben, das ist zwar korrekt aber irritiert uU. etwas - kann man das ändern?
Ich könnte mir vorstellen, das man die resoloution in zukunft selber angeben kann, damit das nicht mehr auftritt.
o) Gibts das Tool - in Zukunft vielleicht? - auch mit anderen Browser-Engines?
Es besteht die möglichkeit, bei nachfrage auch die Internet Explorer's rendering engine einzubauen.
o) Welche Optionen sind beim $size-String möglich bzw. wie anzugeben?
large oder crop
Auf shell ebene kannst du das so machen:

curl -F 'size=crop&url=http://www.google.com' http://www.codejungle.org/api/thumb.php

Name:
Habe das Tool vor einigen Tagen ausprobiert und habe ein paar Fragen/Anregungen.

o) Die Zeit bis zum Abbruch des Scripts (via Shell) bei nicht erreichbaren Servern finde ich mit 90 Sekunden viel zu hoch.
o) Grafik hat 99 dpi bei 32 Bit - Zufall oder Absicht? (Dateigröße, zwar 'vernachlässigbar' aber naja...)
o) Seiten bzw. Elemente bei denen keine Hintergrundfarbe gesetzt ist werden mit grau ("Safari-Grau"?) wiedergegeben, das ist zwar korrekt aber irritiert uU. etwas - kann man das ändern?
o) Gibts das Tool - in Zukunft vielleicht? - auch mit anderen Browser-Engines?
o) Welche Optionen sind beim $size-String möglich bzw. wie anzugeben?