在asp.net中显示集合中的图像

本文关键字:图像 集合 显示 net asp | 更新日期: 2023-09-27 18:04:00

我有一个自定义类型的集合,如下所示:

[DataContract]
public class PhotoDC
{
    public PhotoDC();
    [DataMember]
    public byte[] ImagebyteArray { get; set; }
    [DataMember]
    public string Name { get; set; }
}

我想显示一个web表单上的所有项目(图像和名称),我可以使用哪个控件以及如何将字节数组转换为图像?

在asp.net中显示集合中的图像

在ASP中没有内置控件。你可以直接分配一个字节数组来显示图像。你可以做的是,简单地编写一个自定义HttpHandler,它以"Name"作为参数,并将字节数组作为二进制响应发送给带有适当http响应头的客户端。

下面是一个自定义http处理程序的例子。在这个示例图像中,使用文件流从一个文件构建。

我将使用具有标签和带有Item模板的图像控件的Repeater控件。

下面的语句转换为to、from和byteArray。

    /// <summary>
    /// Converts an Image to Byte array
    /// </summary>
    /// <param name="imageIn">Image to convert</param>
    /// <returns>byte array</returns>
    public static byte[] ImageToByteArray(Image imageIn)
    {
        MemoryStream ms = new MemoryStream();
        imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        return ms.ToArray();
    }
    /// <summary>
    /// Converts an Byte array to and Image
    /// </summary>
    /// <param name="byteArrayIn">byre array</param>
    /// <returns>Image</returns>
    public static Image ByteArrayToImage(byte[] byteArrayIn)
    {
        MemoryStream ms = new MemoryStream(byteArrayIn);
        var returnImage = Image.FromStream(ms);
        return returnImage;
    }

此链接显示您必须将内存流绑定到asp.net图像控件。