Silverlight中通过调用WebService来显示数据库中以流形式保存的图片

简介: 在Web开发中,常见的做法如下:将数据库中读取出来的内容以字节数组的形式存储,字符串型转字节数组的方法是Convert.FromBase64String,然后以二进制写的方法将图片信息写在页面中。

在Web开发中,常见的做法如下:

将数据库中读取出来的内容以字节数组的形式存储,字符串型转字节数组的方法是Convert.FromBase64String,然后以二进制写的方法将图片信息写在页面中。主要代码如下:


SWDM dm = new SWDM();
protected void Page_Load(object sender, EventArgs e)
{
    string strSQL = "select picContent from tb_ssxq where OBJECTID=1";
    DataSet ds = dm.getsql(strSQL);
    byte[] byteFileStream = Convert.FromBase64String(ds.Tables[0].Rows[0]["picContent"].ToString());
    Response.BinaryWrite(byteFileStream);
    Response.End();
}


在Silverlight中如何实现呢,其实差不多,只不过在WebService中的方法的返回值要是byte[]类型,然后在Silverlight中利用MemoryStream来接收并存储图片流信息,然后将其作为BitmapImage的Source即可,最后利用Silverlight的Image控件即可显示出该图片。

WebService中的代码如下:

     /// <summary>
    /// 根据险情ID获取实时险情的图片信息
    /// </summary>
    /// <param name="paramCity"></param>
    /// <returns></returns>
    [WebMethod(Description = "获取某一个实时险情的图片信息")]
    public byte[] getSSXPictureQByID(string xqid)
    {
        byte[] byteFileStream = null;
        string strSQL = "select picContent  from tb_ssxq where OBJECTID=" + int.Parse(xqid);
        DataSet ds = dm2.getsql(strSQL);
        byteFileStream = Convert.FromBase64String(ds.Tables[0].Rows[0]["picContent"].ToString());
        return byteFileStream;
    }

Silverlight中代码:

<Grid x:Name="LayoutRoot" Background="White">
   <Border BorderBrush="#FF5BB0FF" BorderThickness="1" Margin="0">
         <Image x:Name="Image1" Margin="0" Stretch="None"/>
   </Border>
</Grid>


private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
        //获取险情图片信息
        getPictureInfoSoapClient client = new getPictureInfoSoapClient();

        client.getSSXPictureQByIDCompleted += new EventHandler<getSSXPictureQByIDCompletedEventArgs>(client_getSSXPictureQByIDCompleted);
        client.getSSXPictureQByIDAsync(id);
}

//险情图片
void client_getSSXPictureQByIDCompleted(object sender, getSSXPictureQByIDCompletedEventArgs e)
{
        MemoryStream ms = new MemoryStream(e.Result);
        BitmapImage image = new BitmapImage();
        image.SetSource(ms);
        this.Image1.Source = image;
}





相关文章
|
存储 Java 应用服务中间件
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
524 0
SpringBoot 存储图片 tomcat服务器存图片 数据库图片路径
|
14天前
|
PHP 数据库
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务-2
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务
|
14天前
|
存储 PHP Apache
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务-1
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务
|
14天前
|
存储 PHP Apache
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
使用CFimagehost源码搭建无需数据库支持的PHP免费图片托管私人图床
|
数据库 数据库管理
如何在Qt中使用数据库Sqlite保存和提取图片
如何在Qt中使用数据库Sqlite保存和提取图片
768 0
|
SQL JavaScript BI
FineReport 多个按钮控制数据库中图片动态显示在决策表界面
决策报表中,finereport对图片的显示没有很好的支持(图片组件无法动态显示,只能上传一张图片),现在使用数据库中保存的图片(以blob格式保存的)动态显示在决策报表页面。 这里的需求是使用按钮控制图片动态显示:方法是使用了JS控制文本框的值,让文本框的值变成动态参数(文本框名称)的值(文本框隐藏掉),动态参数控制数据库查询语句SQL。
315 0
FineReport 多个按钮控制数据库中图片动态显示在决策表界面
|
SQL 存储 缓存
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
121 0
新年迈出Java后台服务器与数据库交互第一步&2022最新通用Java8&jdbc8连接mysql8数据库进行增删改查等基本操作详解(IDEA),jar包导入,图片等文件流,批量操作
|
存储 Java 关系型数据库
Java使用JDBC向数据库存取二进制数据(如图片,视频,音频等)
Java使用JDBC向数据库存取二进制数据(如图片,视频,音频等)
327 0
Java使用JDBC向数据库存取二进制数据(如图片,视频,音频等)
|
XML SQL 缓存
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
404 0
Android 音乐APP(四)显示专辑图片、本地数据库、自定义通知栏样式、通知栏显示
|
SQL 数据库
如何将图片存进SQL数据库中以及从数据库读取照片(解决办法)
如何将图片存进SQL数据库中以及从数据库读取照片(解决办法)
905 0