Silverlight中通过调用WebService来显示数据库中以流形式保存的图片
2011-10-13 10:22
477 查看
在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;
}
将数据库中读取出来的内容以字节数组的形式存储,字符串型转字节数组的方法是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;
}
相关文章推荐
- silverlight通过webservice提供的Uri显示图片
- 将图片保存到数据库(通过流的形式)
- 通过s:graphicImageDynamic组件显示保存到数据库中的图片
- 图片保存到数据库和从数据库读取图片并显示(C#)
- 如何读取保存在数据库中的图片显示在DataGrid中
- Silverlight通过Webservice连接数据库操作
- 将图片以Blob格式存入数据库,再通过Servlet显示到界面
- 图片以二进制流的形式保存在数据库中
- 图片保存到数据库和从数据库读取图片并显示(C#)
- 【原创】php无框架webuploader上传图片以base64形式保存到数据库
- 死亡历险,Delphi以Json方式一次传递多张图片通过WebService到Java保存
- BinaryImage:直接显示以二进制形式存储在数据库中的图片
- 图片保存到数据库和从数据库读取图片并显示
- 头像图片显示---数据库中保存路径 图片上传到工作目录下
- 将图片保存到数据库表中及从数据库表中读取图片并显示
- C# extjs 图片、附件以二进制形式存储至数据库,图片显示,附件下载
- 保存图片流到数据库之后固定显示新法
- 加密字符串与图片保存于数据库,并显示读取显示
- VB.NET Winform显示保存在数据库中的图片
- 关于ueditor的配置、图片上传、保存数据库、显示等