如何从C#字节数组显示网页表单中的图像 [英] How to display image inside web form from Byte Array with C#

查看:156
本文介绍了如何从C#字节数组显示网页表单中的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的code,它的作用是明确的网页,并绘制图像,使表格的其余部分消失!我需要显示表单中的形象。

This is my code, all it does is clear the web page and draw the image, so the rest of the form disappears! I need to show the image inside the form.

这是我的用户控件来显示图像:

This is my User Control to display the 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);

            }
        }

我需要找到那不清除所有页面的方式,只是吸引用户控件中的图像。

I need to find a way that doesnt clear all the page, just draw the image inside the user control.

推荐答案

您可以写一个网页的.aspx或处理程序也许是.ashx的发送图片的内容返回给浏览器。你可以在URL中传递信息。
然后使用URL这个页面的HTML标记或HTML控件来显示它。

You could write a page .aspx or a handler maybe .ashx that send the content of the picture back to the browser. You could pass information in the url. Then use the url to this page with an html tag or html control to display it.

编辑:
您需要使用的控件。你可以在二进制数据的内容转换为base64并输出到HTML页面。

You need to use a Control. You could convert the binary data to base64 and output the content to the html page.

我给你举个例子与IMG HTML标签:

I give you an example with an img html tag:

<img alt="" src="data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAsMAAAGhCAIAAAALOi7ZAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QgLEhM6PUSGrwAAIABJREFUeNq8vcuSLEmWHKZ6jnlEZt5761Z3T/eAHAICAYRcEALsuOCWPzbzDfwP/gKXWJACoRDCBSkEBgPhADKY7qnu+4wIdztHuThmHh55q2t6ho+SlpaqyMwID3ez89CjqsY//dM//bM/+zMc/pGE3//PT/z09/1I0t/1Rz/x+o9+0I++vv/n8fU/8MW/9U9+9JVvL/v/u1cy86cv5ttfePXKq//8fTfhp+/qT3/oq8v+6V/+Ay/v25/+4X/46nqO"/>

您也可以使用base64编码图像使用CSS:

You can also use base64 encoding for image with CSS:

background-image: url(data:image/jpeg;base64,IVB)

要转换成的base64在C#中你可以使用:

To convert into base64 from C# you can use:

using System;

Convert.ToBase64String(Foto);

这篇关于如何从C#字节数组显示网页表单中的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆