Nesse artigo veremos como gerar um Thumbnail (ou Screenshot) de um HTML. Por exemplo: ??s vezes queremos ter uma pr??via de uma p??gina e n??o temos como v??-la a n??o ser abrindo-a. Ent??o geremos o thumb delas e coloquemo-as em um DataList. No caso n??o colocarei no DataList… apena mostrarei como gerar o thumb. Usaremos o componente WebsitesScreenshot. Essa DLL permite:
- Gerar um thumb atrav??s de um arquivo HTML local (indicando o arquivo ou inserindo o c??digo-fonte);
- Gerar um thumb atrav??s de uma URL;
- Salvar o thumb gerado ou exibir na tela, etc.
?? um poderoso componente que voc?? pode manipular de v??rias formas e chegar a bons resultados. Irei mostrar algo bem simples: gerarei um thumb de uma URL e exibirei em uma imagem. Vamos?
Crie uma p??gina (Web Form) qualquer onde ser?? exibida o thumb. Adicione um Image e no seu atributo ImageUrl indique o valor Thumb.ashx. Agora criemos um Generic Handler chamado Thumb.ashx no projeto. Dentro do ProcessRequest coloque o seguinte trecho de c??digo ficando da seguinte forma:
public void ProcessRequest (HttpContext context) {
WebsitesScreenshot.WebsitesScreenshot ComponenteThumb = new WebsitesScreenshot.WebsitesScreenshot();
WebsitesScreenshot.WebsitesScreenshot.Result ResultadoCaptura = ComponenteThumb.CaptureWebpage(“http://www.google.com.br/”);
if (ResultadoCaptura == WebsitesScreenshot.WebsitesScreenshot.Result.Captured)
{
System.Drawing.Image thumb = ComponenteThumb.GetImage().GetThumbnailImage(140, 110, null, new IntPtr());
MemoryStream ms = new MemoryStream();
context.Response.ContentType = “image/png”;
thumb.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
ms.WriteTo(context.Response.OutputStream);
}
ComponenteThumb.Dispose();
}
N??o se esque??a de adicionar o namespace System.IO; l??. O resultado seria algo do tipo:
A depender dos par??metros que voc?? trabalhar e qualidade dos objetos, o resultado final vem a ser melhor do que isso. O que mostrei foi o b??sico do componente!
Se fosse para gerar o thumb de um arquivo HTML local ou c??digo-fonte, bastaria inserir o seu conte??do em uma string e depois usar o seguinte m??todo:
string HtmlArquivo = “Voc?? visitou o blog de Thiago Mar??al!”;
WebsitesScreenshot.WebsitesScreenshot.Result ResultadoCaptura = ComponenteThumb.CaptureHTML(HtmlArquivo);
E o resultado seria:
Est?? pequenininho, mas ?? thumb! Mais informa????es voc?? pode obter no site oficial.
3 respostas em “Gerar Thumbnail de um HTML”
tem como tirar esta cruz cinza ai????
Leonardo, comprando o componente ?? removido a marca d'??gua cinza.
Tem a op????o do http://www.memex.com.br. Ele captura qualquer url e te devolve um JPG, PNG ou PDF.