Screenshot mit PHP || JS ??!

Hi CommZ,

Ich bin auf der suche nach einer Möglichkeit einen Screenshot von einer Homepage automatisch machen zu lassen, sodas ich beispielweise den link nur an eine funktion übergebe und er mir daraufhin einen Screenshot diese website macht.

Ich nehm da jede noch so kleine Idee dankend an!

MfG,

euer Tko?
 
Was stellst du dir unter einem "Screenshot" vor? Da ja net mal jeder Browser eine Seite gleich rendert, wird das in einem grafischen Format net so wirklich klappen ;)
 
Hi!,

Angenommen es ist eine PHP-Funktion müsste es ja egal sein welche Auflösung oder Browser des User hat. Das Script liegt ja auf meinem Server,somit übergibt der User nur die Seitenvariable an die Funktion und das Script geht auf die Seite und macht nen Screenshot.... so denk ich mir das zumindest.

MfG,

Tko2
 
Original von TeeKayo2
Hi!,

Angenommen es ist eine PHP-Funktion müsste es ja egal sein welche Auflösung oder Browser des User hat. Das Script liegt ja auf meinem Server,somit übergibt der User nur die Seitenvariable an die Funktion und das Script geht auf die Seite und macht nen Screenshot.... so denk ich mir das zumindest.

MfG,

Tko2
Als erstes: lol.
Wie kommt man bitte darauf mit PHP screenshots machen zu wollen? An eine PHP Funktion einen "Link" übergeben und die Funktion die Seite vom Server abrufen lassen ist eher trivial, aber was du bekommst ist immer der Quellcode der Seite (verpackt im HTTP Protokoll) und bevor du damit irgendwelche Bildchen anfertigen lassen kannst musst du ihn erst auswerten ... !
Mit JS ist es eigentlich auch nicht möglich Screenshots zu erstellen (soweit ich weiß), aber mit Java ist es möglich. Du solltest also vllt mal drüber nach denken das mit Java zu lösen. (Du könntest einfach einen eigenen Browser schreiben und von diesem Window Screenshots machen, geht relativ einfach - ist ja Java. X()

Was willst du überhaupt mit den Screenshots anfangen? Vllt gibt es ja eine bessere Lösung für dein Problem.

mfg
püppi
 
Ich glaube er will, dass bei Links auf andere Websiten autom. ein Thumbnail der verlinkten Seite angezeigt wird.

Ähnlich wie wenn ihr zB auf www.oswd.org die Templates durchsucht, da sieht man auch einen Thumbnail. Nur sowas halt automatisiert und immer aktuell ;)
 
Du sagst es RemoteC :)!

Also gibt es bisher nur den Java Vorschlag. Hab ich allerdings garkeine Ahnung (bisher?) von, wäre für ne Alternative offen :)

Danke erstmal,

MfG,

Tko?

Edit:sehe gerade del.icio.us und bookmark.de haben sowass auch.
 
Okay das mit den Thumbs ist nachvollziehbar.
Ich hab eben mal Testweise nen Browser geschrieben der nach laden der Seite einen Screenshot macht und den als jpg speichert.
Theoretisch wäre das Programm so anpassbar das man beim Aufruf des "Programms" eine Liste mit URL's angeben könnte die zu "screenshoten" (X'D) sind und es dann selbstständig diese Seiten aufruft und fotographiert. Dann müsstest du allerdings immer noch "per Hand" die URLs zusammen sammeln. Auch denkbar wäre das du die URLs aus einer Datei einlesen lässt (Dateiname dann beim Prog.aufruf übergeben), das wäre dann schon besser automatisierbar.
Wenn du allerdings noch keine Ahnung von JAVA hast, dann wird es relativ schwer für dich das selbst anzupassen. Also entweder du fängst jetzt mal an JAVA zu lernen (wirst du eh nicht drum rum kommen) oder du fragst mal ob dir jemand hier helfen will ... oder falls du niemanden findest schreib ich dir auch was wenn du magst (und ich genug langeweile habe ;D).


mfg
püppi
Mein Code, nicht schön aber selten :D
(Eclipse & swt jar ausm Plugin Verzeichnis notwendig)
Code:
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;

public class HaboBrowser{
	
  public HaboBrowser() throws Exception{
    Display display = new Display();
    Shell shell = new Shell(display,SWT.MODELESS);
    shell.setBounds(0, 0, 1024, 768);
    shell.setLayout(new FillLayout());
    
    final org.eclipse.swt.graphics.Rectangle rect = shell.getBounds();
    
    final Browser browser = new Browser(shell, SWT.NONE);
    browser.setUrl("www.hackerboard.de");
    browser.addProgressListener(new ProgressListener(){
    	public void changed(ProgressEvent event) {
    		
    	}
    	public void completed(ProgressEvent event){
    	    try{
    		Rectangle screenRect = new Rectangle(rect.x,rect.y,rect.width,rect.height);
    		Robot robot = new Robot();
    		BufferedImage image = robot.createScreenCapture(screenRect);
    		ImageIO.write(image, "jpeg", new File("habo.jpg"));
    
    	    }catch(Exception e){
    	    	e.printStackTrace();
    	    }
    	}
    });
    shell.open();

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();
  }
  
  public static void main(String[] args) throws Exception{
    new HaboBrowser();
    
  }
}
 
Bin eben auf khtml2png gestoßen, mit dem man auch Screenshots von Webseiten automatisiert erstellen kann. Setzt natürlich voraus, dass du auf dem Server, der das ganze machen soll, Zugriff hast, um das Ding mit seinen Abhängigkeiten (libkhtml, imagemagick) zu installieren.

Als Render-Engine wird hier KHTML verwendet, der Screenshot sähe dann also so aus, wie es ein Konqueror sehen würde.
 
Hi!

Das sind schonmal gute Aussichten.

@ Puppe:
Hm ja vll. könntest du mir dabei helfen, wär nicht schlecht da ich LX' s Vorschlag mit Webspace nicht umsetzen kann...

Und des ganze is mir schon sehr wichtig mit den Thumbs... komm bald mal auf dich zu deswegen, danke nochmal und schonmal ;)!

MfG,

Teekayo2
 
Zurück
Oben