2011-05-03 24 views
5

如何在PHP中將網頁呈現並保存爲圖像,可能寬度爲600px。如何在不使用瀏覽器的情況下使用PHP呈現頁面?我怎樣才能保存給定的分辨率和圖像格式(JPEG)?該功能與Google預覽類似,但它不會以滾動顯示。如何在PHP中創建網頁的圖像?

與此問題類似,用C#解答。 How to save a web page as image

謝謝!

+0

[如何將網頁保存爲使用PHP的圖像文件?](http://stackoverflow.com/questions/3175392/how-to-save-webpage-as-a-image-file-using- php) – 2011-05-03 17:21:33

+0

很酷。感謝所有偉大的資源! – 2011-05-03 17:31:14

回答

7

你應該得到wkhtmltoimage,這是很容易從PHP中使用:

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

還有其他的選擇,而不是--crop-w--width 600可能會更好向下規模它使用GD或imagemagick之後。

+0

謝謝。看起來它只能轉換爲PDF和PS。我想我可以使用另一個庫轉換爲JPG格式... – 2011-05-03 17:35:53

+0

不,它有兩個版本。你找到的是'wkhtmltopdf'版本。但也有'..toimage'二進制文件,這是你想要的。 (使用也更簡單。) – mario 2011-05-03 17:36:57

+0

我發現http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.10.0_beta2-static-amd64.tar.bz2&can=4&q=用於wkhtltoimage,但它說版本0.10和depricated。沒有文檔... – 2011-05-03 17:52:41

2

你不能在純PHP中做到這一點,你總是需要一個外部渲染器來獲得好的結果。

最好的辦法是使用外部服務,例如browsershots.org API,這樣你不會在服務器上產生額外的負載。

如果您有資源需要刻錄,您可以使用另一種方法(仍在服務器上運行,而不是PHP),名爲wkhtmltoimage,如mario's answer。請記住,這不會被推薦(事實上,可能甚至不可能)共享主機。

+0

這確實是一個不錯的API。我也會檢查一下(目前在一個項目中使用更多的片狀服務..) – mario 2011-05-03 17:33:41