Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

PHP ile Sitenin Resmini çekmek

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
Tepki puanı
51
Konum
makedonya
Merhaba arkadaşlar,
Çok eski bir projem için bunu araştırıyordum ozaman çözüm bulamamıştım tekrar aklıma takıldı..

PHP ile form'da belirtilen sitenin resmini istediğimiz kalitede resmini çektirebilir miyiz?
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
Tepki puanı
51
Konum
makedonya
Teşekkürler atay, şimdi deniyorum olumsuz bir olayla karşılaşırsam bilgi alırım tekrar..
 

OnuR

0
Onaylı Üye
Üye
Katılım
28 Ekim 2004
Mesajlar
1,817
Açılan Konu
75
Tepki puanı
51
Konum
makedonya
Az önce Linux olana baktım sunucuda php-gtk2 modülünü istiyor.
Yapmak isteyipte bulamayanlar benim gibi,
php-gtk2 modülünü http://gtk.php.net/download.php adresinden yükleyip aşağıdaki php kodlarıyla web sitesinin resmini çektirebilir.

atay tekrar teşekkürler.


<?php

/**
* GtkMozEmbedScreenshot
*
* @package GtkMozEmbedScreenshot
* @author Daniel Anechitoaie
* @copyright 2008
* @license GPL
* @version 0.1.0 Beta
* @access public
*/

class GtkMozEmbedScreenshot
{
var $version = '0.1.0';
var $mozWidget;

public function __construct()
{
if (!class_exists('Gtk'))
{
die("Error: php-gtk2 module is not loaded!");
}

if (!class_exists('GtkMozEmbed'))
{
die("Error: your php-gtk2 module was not compiled with GtkMozEmbed support (--with-mozembed)!");
}
}

public function take_screenshot($url, $fname)
{
$win = new GtkWindow();
$this->mozWidget = new GtkMozEmbed();

$win->set_size_request(800, 600);
$win->add($this->mozWidget);

$win->show_all();

$this->mozWidget->connect_simple('net_stop' , array($this, 'save_image'), $fname);
$win->connect_simple('destroy', array($this, 'quit'));

$this->mozWidget->load_url($url);

Gtk::main();
}

public function quit()
{
Gtk::main_quit(); // in a perfect world this should be enough
// but due to a bug in php ( http://bugs.php.net/bug.php?id=39572 )
exit; // we must also call this little baby and by doing that we can only run this
// as a console app
}

public function save_image($fname)
{
list($x, $y, $width, $height, $depth) = $this->mozWidget->window->get_geometry();
$pixbuf = new GdkPixbuf(Gdk::COLORSPACE_RGB, false, 8, $width, $height);
$pixbuf->get_from_drawable($this->mozWidget->window, $this->mozWidget->get_colormap(), 0, 0, 0, 0, $width, $height);
$pixbuf->save($fname, 'png');
$this->quit();
}
}


$test = new GtkMozEmbedScreenshot();
$test->take_screenshot("http://www.onurvardi.com/", "test.png");

?>
 

atay

0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Açılan Konu
298
Tepki puanı
36
Rica ediyorum, işiniz görüldüyse ne mutlu :)
 
Üst