Comment faire pour afficher l'image à l'intérieur de web forme de Tableau d'Octets avec C#
C'est mon code, il est clair que la page web et dessiner l'image, de sorte que le reste de la forme disparaît! J'ai besoin d'afficher l'image à l'intérieur de la forme.
C'est mon Contrôle de l'Utilisateur pour afficher les images:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["ObjHoteles"] == null)
{
Label1.Text = "Por favor, primero seleccione un hotel para desplegar las fotos.";
}
else
{
if (!IsPostBack)
{
List<Byte[]> ArrayFotos = new List<Byte[]>();
string NombreDelHotel = "";
Hoteles Hotel1 = (Hoteles)Session["ObjHoteles"];
NombreDelHotel = Hotel1.NombreHotel;
ArrayFotos = Persistencia.PersistenciaFotos.FotosDeHotel(NombreDelHotel);
Session["CantFotos"] = ArrayFotos.Count();
Byte[] Foto = ArrayFotos[0];
Response.Buffer = true;
Response.Clear();
Response.ContentType = "image/jpeg";
Response.Expires = 0;
Response.BinaryWrite(Foto);
Session["NumFoto"] = 0;
}
else
{
List<Byte[]> ArrayFotos = new List<Byte[]>();
string NombreDelHotel = "";
Hoteles Hotel1 = (Hoteles)Session["ObjHoteles"];
NombreDelHotel = Hotel1.NombreHotel;
ArrayFotos = Persistencia.PersistenciaFotos.FotosDeHotel(NombreDelHotel);
Session["CantFotos"] = ArrayFotos.Count();
Byte[] Foto = ArrayFotos[(int)Session["NumFoto"]];
Response.Buffer = true;
Response.Clear();
Response.ContentType = "image/jpeg";
Response.Expires = 0;
Response.BinaryWrite(Foto);
}
}
J'ai besoin de trouver un moyen pour ne pas effacer la page, il suffit de dessiner l'image dans le contrôle de l'utilisateur.
Hmm.. Merci de réviser votre question, de sorte qu'il fournira la liste de cette demande spécifique de l'utilisation d'un contrôle de l'utilisateur pour atteindre cet.. faite par votre client en fonction de ce que j'ai lu dans vos commentaires.
OriginalL'auteur octohedron | 2013-08-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez écrire une page .aspx ou un gestionnaire peut-être .ashx que d'envoyer le contenu de l'image au navigateur. Vous pourriez passer des informations dans l'url.
Ensuite, utilisez l'url de cette page avec une balise html ou html de contrôle pour l'afficher.
EDIT:
Vous devez utiliser un Contrôle. Vous pouvez convertir les données binaires en base64 de sortie et le contenu de la page html.
Je vous donne un exemple avec une balise html img:
Vous pouvez également utiliser l'encodage base64 pour l'image avec CSS:
Convertir en base64 à partir de C#, vous pouvez utiliser:
et:
Pourriez-vous expliquer comment le faire avec du CSS et des données base64?
Cela ne fonctionne pas avec Internet Explorer 7 et versions antérieures, car les données de schéma d'URI n'est pas pris en charge et a un support limité dans Internet Explorer 8; lire Données de schéma d'URI pour plus d'informations.
J'ai essayé cette après la conversion d'une image à partir d'un tableau d'octets en une chaîne base64. Cela n'a pas fonctionné jusqu'à ce que j'ai supprimer la fin "2Q==" à partir de la fin de la chaîne base64, alors, il était beau.
OriginalL'auteur Shire
Il y a aussi un autre moyen simple:
Sur votre
.aspx
page:Ensuite dans votre fichier Code-behind
.aspx.cs
:OriginalL'auteur Sergey Malyutin
Response.Clear();
est la suppression de tout le contenu mis en mémoire tampon (c'est à dire tout ce qui dans votre page).Au lieu d'un contrôle de l'utilisateur pour afficher une image dynamique, envisager un gestionnaire HTTP (
.ashx
), comme ceci:ImageHandler.ashx:
Puis dans votre
.aspx
page:Remarque: Si vous voulez une image en particulier, alors vous pouvez passer d'une chaîne de requête (c'est à dire ID de l'image) à la gestionnaire et avoir le tableau d'octets logique compte pour l'utilisation de la valeur de chaîne de requête.
OriginalL'auteur Karl Anderson