• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pbreda

WebSite ScreenShot [Urgente]

3 mensagens neste tópico

Boas, gostaria de saber como fazer um screenshot de um site a partir de httpRequest/sockets, ou seja, sem o webbrowser ou similar....

Cumprimentos....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, antes de mais sugiro que não uses tags do género "urgente", porque além de não ir de encontro ao que diz nas regras do fórum, não vai ajudar na resolução.

Quanto à dúvida, pensa bem: se tu queres ter uma representação gráfica da página, ela tem que ser mostrada nalgum lado, ou seja, fazer parsing ao HTML e mostrá-la graficamente ao utilizador. Logo, sem browser não vais lá. Mas se os websites forem bem conhecidos, podes sempre optar por serviços que te permitem devolver um screenshot da página.

Para obter a imagem, vais buscar o endereço da mesma, usando a técnica que usaste para buscar da metatags (outro tópico), fazes download dela e mostras para o utilizador da forma que pretendes.

Google > website screenshot

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tenho um exemplo em C# e é como tas a dizer eu tentei transpor mas tem bugs o código C# é o seguinte:

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Windows.Forms;
      using System.Drawing.Imaging;
      using System.Drawing.Drawing2D;
      using System.IO;
      using System.Runtime.InteropServices;
  
      namespace ScreenshotTaker
        {
            public partial class Form1 : Form
          {
              public Form1()
              {
                  InitializeComponent();
              }

              private void btnLoad_Click(object sender, EventArgs e)
              {
                  webBrowser1.Navigate("http://www.geekpedia.com");
              }

              private void btnSnap_Click(object sender, EventArgs e)
              {
                   // The size of the browser window when we want to take the screenshot (and the size of the resulting bitmap)

                  Bitmap bitmap = new Bitmap(1024, 768);
                  Rectangle bitmapRect = new Rectangle(0, 0, 1024, 768);

                  // This is a method of the WebBrowser control, and the most important part
                  webBrowser1.DrawToBitmap(bitmap, bitmapRect);

                  // Generate a thumbnail of the screenshot (optional)
                   System.Drawing.Image origImage = bitmap;
                   System.Drawing.Image origThumbnail = new Bitmap(120, 90, origImage.PixelFormat);
  
                  Graphics oGraphic = Graphics.FromImage(origThumbnail);
                  oGraphic.CompositingQuality = CompositingQuality.HighQuality;
                  oGraphic.SmoothingMode = SmoothingMode.HighQuality;
                  oGraphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
                  Rectangle oRectangle = new Rectangle(0, 0, 120, 90);
                  oGraphic.DrawImage(origImage, oRectangle);

                  // Save the file in PNG format
                  origThumbnail.Save("Screenshot.png", ImageFormat.Png);
                  origImage.Dispose();
              }
          }
      }

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora