【问题标题】:How to show Bitmap in Razor cshtml如何在 Razor cshtml 中显示位图
【发布时间】:2022-11-11 07:17:09
【问题描述】:

我从具有 6 个属性的模型中接收到一个对象列表,我需要在 cshtml 的表格中显示这些属性,这些对象的一个​​属性是在运行时生成的 System.Drawing.Bitmap 类型。

有没有办法在 cshtml 中用 Razor 显示这个 Bitmap 对象?感谢大家!

 @model List<Database.DisplayPiece>

@{
    Layout = "~/Views/Shared/_VisualRuleLayout.cshtml";
}

<!DOCTYPE html>
<html>
<head>

</head>
<body>
    <h3>@ViewBag.title</h3>
    <table class="table">
        <thead>
            <tr>
                <th>Branch #</th>
                <th>Lot</th>
                <th>Last Ordered</th>
                <th>Width (inches)</th>
                <th>Length (feet)</th>
                <th>Available</th>
            </tr>
        </thead>
        <tbody>
            @foreach (var available in Model)
            {
                <tr>
                    <td>@Html.DisplayFor(m => available.Branch)</td>
                    <td>@Html.DisplayFor(m => available.LotName)</td>
                    <td>@Html.DisplayFor(m => available.OrderDate)</td>
                    <td>@Html.DisplayFor(m => available.Width)</td>
                    <td>@Html.DisplayFor(m => available.Length)</td>
                    <td>@Html.DisplayFor(m => available.Bitmap)</td>
                </tr>
            }

        </tbody>
    </table>
</body>
</html>

【问题讨论】:

  • Bitmap 属性到底是什么?字节数组? URL 作为字符串?文件路径?
  • 我在运行时从模型接收它作为 Bitmap 对象。运行程序后,它会在我在 Html 中指定的字段中显示包含所有位图对象属性的表。感谢您的答复 :)

标签: c# asp.net-mvc model-view-controller razor bitmap


【解决方案1】:

控制器:

在发送包含位图对象的“DisplayPiece”对象列表之前,需要将位图转换为 Bytes[] 具有以下内容:

byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
    {
        YOUR_BITMAP_OBJECT.Save(stream, stem.Drawing.Imaging.ImageFormat.Png);
        stream.Close();
        byteArray = stream.ToArray();
    }

将对象转换为 Byte[] 后,创建一个新模型以保存具有转换为 Byte[] 的 Bitmap 属性的对象并将其发送到视图。

看法:

在需要显示位图对象的行中,粘贴以下内容:

<td>
@{var base64 = Convert.ToBase64String(available.Bitmap);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}
<img src="@imgSrc"/>
</td>

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 2012-03-29
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多