Question

Comment utiliser C # pour capturer une image d'une URL spécifique?

Je veux utiliser C # pour capturer automatiquement une image d'une page Web basée sur une URL spécifique.

Par exemple, j'ai une page contient un txtUrl.Text = « http: //www.some .com / index.aspx », puis je clique sur un bouton, comment puis-je capturer une image de cette URL?

Était-ce utile?

La solution

Je suppose que vous voulez faire de ASP.NET (par opposition à partir d'une application WinForms).

Dans votre projet web, ajoutez une référence à System.Windows.Forms (oui, cela est une mauvaise chose à faire). Dans votre code-behind, vous pouvez créer un objet de type System.Windows.Forms.WebBrowser:

WebBrowser browser = new WebBrowser();
// this will load up a URL into the web browser:
browser.Navigate(@"http://www.stackoverflow.com"); 

Ensuite, il suffit d'utiliser la fonction API BitBlt (désolé, je n'ai pas un lien pratique) pour copier l'affichage graphique du contrôle WebBrowser à un Bitmap (que vous pouvez afficher ou enregistrer ou autre). Avec cette fonction, la propriété poignée du navigateur Web est l'un des paramètres à passer.

Mise à jour: Voici un lien vers un code qui fait exactement ce dont vous avez besoin: http://www.developerfusion.com/code/4712/generate-an-image-of-a-web-page/

Autres conseils

Si vous voulez dire un visuel de la page Web, une approche est d'intégrer IE à votre application et prendre une capture d'écran par programmation. Cette (pour le navigateur Web intégré) et cette (pour prendre des captures d'écran avec C #) peut être utile. Ceci est bien sûr IE dépendante.

Une autre option utilise le shotserver et les projets shotfactory utilisés pour browsershots.org . Ils peuvent être trouvés , bien que je ne sais pas s'il y a une API .NET pour il.

Je ne pense pas que cela soit vraiment possible seulement en utilisant C #. C'est parce que C # ou le framework .NET pour cette matière, n'offrent aucune sorte de capacités de rendu de balisage HTML. Le plus proche, vous pouvez obtenir - à mon avis -. Serait d'utiliser un contrôle WebBrowser et puis essayer de capturer une certaine façon, il est sortie graphique (ce qui serait la page rendu)

L'autre façon de le faire serait de rechercher un composant .NET qui pourrait faire ce que vous voulez .. Même si je ne connais pas qui le font.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top