Já používám službu třetí strany artviper.net. Kód pro získání dat je celkem jednoduchý:
Function ZiskejObrazek(ByVal url As String, ByVal sirka As Integer, ByVal vyska As Integer, ByVal uzivatel As String, ByVal kod As String, Optional ByVal getVyska As Integer = 768, Optional ByVal getSirka As Integer = 1024) As Bitmap
Dim openurl As String = "http://www.artviper.net/screenshots/screener.php?userID=" + uzivatel + "&hash=" + GetMD5(url + uzivatel + kod) + "&w=" + sirka.ToString + "&h=" + vyska.ToString + "&sdx=" + getSirka.ToString + "&sdy=" + getVyska.ToString + "&q=90&url=" + url
Dim req As HttpWebRequest = HttpWebRequest.Create(openurl)
Dim rsp As HttpWebResponse = req.GetResponse()
Dim str As Stream = rsp.GetResponseStream()
ZiskejObrazek = Drawing.Bitmap.FromStream(str).Clone()
str.Close()
End Function
Function GetMD5(ByVal input As String) As String
Dim md5Hasher As MD5 = MD5.Create()
Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))
Dim sBuilder As New StringBuilder()
Dim i As Integer
For i = 0 To data.Length - 1
sBuilder.Append(data(i).ToString("x2"))
Next i
Return sBuilder.ToString()
End Function
Pro využití služby se musíte zaregistrovat na stánce http://www.artviper.net/registerapi.php, kde zadáte své jméno, mail a doménu, kde chcete obrázky používat. Obratem vám přijde potvrzovací mail a asi do 2 dnů uživatelské ID a kód pro API. Funkce se následně používá tímto způsobem:
ZiskejObrazek("http://www.seznam.cz", 800, 600, "vaše ID", "váš kód", 1024, 768)
Ta funkce GetMD5() jenom získá MD5 binární řetězec, pokud používáte vlastní, můžete si kód upravit. Co se týká argumentů funkce, je to takto za sebou: [URL stránky], [šířka obrázku], [výška obrázku], [User ID pro API], [Secret code pro API], [šířka obrazovky, na které bude obrázek pořizován], [výška obrazovky, na které bude obrázek pořizován]. Ještě bych doporčil k tomu všemu vystavět cachovací engine, který by ukládal všechny obrázky do dočasné paměti. Pokud totiž obrázek pro web neexistuje, vytváří se znovu, a to trvá kolem 15 sekund...
|