gpt4 book ai didi

c# - 如何将二进制图像传递给图像处理程序以将其显示在 DataList 中?

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:43 27 4
gpt4 key购买 nike

我有一个网页,其中调用了一个方法来在 DataList 控件中显示一些图像

我的图片.cs

class MyImage
{
string Name { get; set; }
byte[] Jpeg { get; set; }
}

MyImages.aspx.cs

public void DisplayMyImages(IEnumerable<MyImage> myImages)
{
this.myImagesDataList.DataSource = myImages;
this.myImagesDataList.DataBind();
}

/// ...

protected void myImagesDataList_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
MyImage myImage = (MyImage)e.Item.DataItem;
Image myImageImage = (Image)e.Item.FindControl("myImageImage");

// How to pass myImage.Jpeg to ImageHandler? form here

myImageImage.ImageUrl = "~/Handlers/ImageHandler.ashx";
}
}

但是如果 jpeg 图像已经从数据库中提取并传递给 DisplayMyImages() 函数,如何将它传递给 ImageHandler

备注:

我不想将它们保存回文件并将查询字符串中的路径传递给 ImageHandler

不可能使用标准查询字符串方法,因为我不想违反模型 View 呈现器方法

最佳答案

通常图像应该由 ImageHandler 生成而不传递给它,所以只需翻转您的逻辑即可。你最终会得到这样的结果:

myImageImage.ImageUrl = "~/Handlers/ImageHandler.aspx?id=yourImageId";

确保设置正确的内容类型,如下所示:

context.Response.ContentType = "image/png";

这就是您将图像写入响应的方式:

byte[] fileData = null;
//TODO: load your image data into fileData!
context.Response.BinaryWrite(fileData);

关于c# - 如何将二进制图像传递给图像处理程序以将其显示在 DataList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013345/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com