Retour sur l'image à travers Reposant webservice
Je veux renvoyer une image au travers d'une API web appel. Ce que j'essaie de faire est d'obtenir l'image, redimensionner l'image, puis le retourner. Voici mon code...
public Image GetImage(string url)
{
WebClient wc = new WebClient();
byte[] data = wc.DownloadData(url);
MemoryStream memstream = new MemoryStream(data);
Image img = Image.FromStream(memstream);
img = resize(img, new System.Drawing.Size(100, 100));
return img;
}
protected static System.Drawing.Image resize(System.Drawing.Image imgToResize, System.Drawing.Size size)
{
return (System.Drawing.Image)(new System.Drawing.Bitmap(imgToResize, size));
}
Et puis, idéalement, je voudrais être en mesure de faire quelque chose comme ceci par le biais de l'html...
<img src="http://localhost:23520/Image/GetImage?url=whatever" />
De toute évidence, cela ne fonctionne pas. Est-il possible que je peux obtenir cette balise image pour afficher une image renvoyée par le service RESTful?
- Je ne suis pas sûr que ça fonctionne à tous. Je préfère envoyer le Base64String de l'image et la convertir une image Bitmap ou BitmapImage sur le côté client et de l'appliquer là. Avez-vous essayé/pensé à ça? Je suis sûr que vous ne pouvez pas retourner un
Image
objet. En outre, votresrc
de la propriété veut une URL et le retour d'un objet Image à partir de votre méthode GetImage, donc ça ne fonctionne pas du tout.
Vous devez vous connecter pour publier un commentaire.
- T-il un appel d'api?
Je recommande fortement d'utiliser un générique gestionnaire pour ce.
Voici un petit tutorial: http://www.dotnetperls.com/ashx
Vous pouvez le lire dans l'image, l'enregistrer dans la mémoire, la redimensionner, puis la sortie de l'image directement.
Si vous n'avez aller dans le gestionnaire de route, ce serait le code que vous avez besoin
La balise d'image serait quelque chose le long des lignes de
<img src="http://localhost:23520/Image/GetImage.ashx?url=whatever" />
Si vous êtes webservice est un service web WCF, vous pouvez jeter un oeil à ce lien:
http://msdn.microsoft.com/en-us/library/cc681221(v=vs. 110).aspx
Je vous recommande d'envoyer l'image au format base64
et la placer à l'image
URL base64 vous pouvez utiliser