0

我必须在 VisualWebGui 的图片框中显示图像。我有字符串格式的图像。

string ImageString_P;
FileStream fs_P = new FileStream(LocalDirectory + "Page_2.tif", FileMode.Open, FileAccess.Read);

byte[] picbyte_P = new byte[fs_P.Length];
fs_P.Read(picbyte_P, 0, Convert.ToInt32(fs_P.Length));
ImageString_P = Convert.ToBase64String(picbyte_P);

现在,如何在图片框中显示此图像(ImageString_P)。我应该创建这个字符串数据的图像还是可以直接在 PictureBox 中显示这个数据?

如果我将在路径中创建图像(假设“c:\xyz.jpg”)。它(xyz.jpg)将如何显示在图片框中。

4

2 回答 2

0

Visual WebGui 是一个 Web 应用程序,因此它基本上需要让浏览器专门请求任何应该呈现的图形数据,这与桌面应用程序有根本的不同,您可以简单地将图形数据本身分配给图像属性一个图片框。

如果你研究了一个带有 PictureBox 的网页是如何在 Visual WebGui 中呈现给浏览器的,你会看到 PictureBox 被呈现为一个 img 标记,其源被设置为一个 Url,它负责将图像提供给浏览器。当浏览器在 img 标记上看到该 Url 时,它会向服务器发出另一个请求以获取该 Url 的内容。这个“次要”请求在 Visual WebGui 中称为网关请求。

要将图形提供给浏览器,您需要在 Visual WebGui 应用程序中使用某种网关。Visual WebGui 中有几种类型的预定义网关,例如图像 (ImageResourceHandle) 和图标 (IconResourceHandle),但在这种情况下,您有一个动态生成的图像,因此您需要定义自己的网关来提供图形内容。 ...或者您可以将图像数据写入应用程序的 Resources\Images 文件夹,然后使用 ImageResourceHandle 来引用它。

在 Visual WebGui 中定义您自己的网关非常简单,您可以在这里看到很多示例。

希望这会有所帮助,帕利

于 2013-04-02T19:44:26.600 回答
0

你可以这样做:

string ImageString_P;
FileStream fs_P = new FileStream(LocalDirectory + "Page_2.tif", FileMode.Open, FileAccess.Read);

byte[] picbyte_P = new byte[fs_P.Length];
this.picMyPicture.Image = new DynamicStreamResourceHandle(contentBitmap, "image/jpeg");

它应该很好。

于 2015-04-20T13:18:13.120 回答