我要在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)将显示在图片框中。
答案 0 :(得分:0)
Visual WebGui是一个Web应用程序,因此它基本上需要让浏览器专门请求应该呈现的任何图形数据,这与桌面应用程序的基本不同,在桌面应用程序中,您可以简单地将图形数据本身分配给PictureBox的图像属性。
如果您研究如何将带有PictureBox的网页呈现给Visual WebGui中的浏览器,您将看到PictureBox呈现为img标记,其中源被设置为Url,Url负责将图像提供给浏览器。当浏览器在img标记上看到该Url时,它会向服务器发出另一个请求以获取该Url的内容。此“辅助”请求在Visual WebGui中称为网关请求。
要将图形提供给浏览器,您需要Visual WebGui应用程序中的某种网关。 Visual WebGui中有几种类型的预定义网关,例如Images(ImageResourceHandle)和图标(IconResourceHandle),但在这种情况下,您有一个动态生成的图像,因此您需要定义自己的网关来提供图形内容。 ...或者您可以将图像数据写入应用程序的Resources \ Images文件夹,然后使用ImageResourceHandle来引用它。
在Visual WebGui中定义自己的网关非常简单,您可以看到很多示例here。
希望这有帮助, 帕里
答案 1 :(得分: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");
它应该渲染得很好。