在Silverlight中读取指定URL图片包数据
2008-06-17 09:21
323 查看
在silverlight开发,允许我们获取指定URL压缩包(zip)并读取其中的图片文件。而实现这个功能也
非常简单。下面是运行效果图:
![](http://images.cnblogs.com/cnblogs_com/daizhj/silverlight_webclient_zip.jpg)
首先,我们需要建立一个silverligth application ,名称为:DownLoadImg.
下面就是相应的page.xaml代码:
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="250" />
<RowDefinition Height="100" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="1">
<ListBox x:Name="ImageList"/>
<Button x:Name="Download" Click="StartDownLoad" Content="下载该图片"/>
</StackPanel>
<StackPanel Grid.Row="0">
<ScrollViewer HorizontalScrollBarVisibility="Auto" >
<Image x:Name="ImgToFill" >
</Image>
</ScrollViewer>
</StackPanel>
<StackPanel Grid.Row="2">
<Canvas Canvas.Top="70" >
<Rectangle Name="progressRectangle" Height="10" Width="0" Fill="AliceBlue" />
<Rectangle Height="12" Width="202" StrokeThickness="1" Stroke="Black" />
<TextBlock x:Name="progressText" Canvas.Left="210" Text="0%" FontSize="12" />
</Canvas>
</StackPanel>
</Grid>
接下来是page.xaml.cs(相关内容见注释):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Resources;
using System.Windows.Media.Imaging;
namespace DownLoadImg
{
public partial class Page : UserControl
{
WebClient wc = new WebClient();
public Page()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Page_Loaded);
}
//加载图片列表数据
void Page_Loaded(object sender, RoutedEventArgs e)
{
ImageList.Items.Add("1.jpg");
ImageList.Items.Add("2.png");
}
//实例化下载设置
void StartDownLoad(object o, EventArgs e)
{
//初始化相应控件信息
ImgToFill.Visibility = Visibility.Collapsed;
progressRectangle.Width = 0;
progressText.Text = "0%";
//绑定下载过程中处理的事件
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);
//开始异步读取压缩包中的文件信息
wc.OpenReadAsync(new Uri("img.zip", UriKind.Relative), ImageList.SelectedItem);
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//实例化流资源信息,准备获取其中的图片数据
StreamResourceInfo sri = new StreamResourceInfo(e.Result as Stream, null);
//要读取的图片路径信息
String sURI = e.UserState as String;
//从流资源中获取指定的URL图片流信息
StreamResourceInfo imageStream = Application.GetResourceStream(sri, new Uri(sURI, UriKind.Relative));
BitmapImage imgsrc = new BitmapImage();
//绑定该URL图片信息并进行显示
imgsrc.SetSource(imageStream.Stream);
ImgToFill.Source = imgsrc;
ImgToFill.Visibility = Visibility.Visible;
ImgToFill.Stretch = Stretch.Fill;
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
//下载过程中的进度显示
progressText.Text = e.ProgressPercentage.ToString() + "%";
progressRectangle.Width = (double)e.ProgressPercentage * 2;
}
}
}
好了,今天的内容就到这里了。
源码下载链接,请点击这里:)
TAG: silverlight, image, zip, daizhj,代震军
非常简单。下面是运行效果图:
![](http://images.cnblogs.com/cnblogs_com/daizhj/silverlight_webclient_zip.jpg)
首先,我们需要建立一个silverligth application ,名称为:DownLoadImg.
下面就是相应的page.xaml代码:
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="250" />
<RowDefinition Height="100" />
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="1">
<ListBox x:Name="ImageList"/>
<Button x:Name="Download" Click="StartDownLoad" Content="下载该图片"/>
</StackPanel>
<StackPanel Grid.Row="0">
<ScrollViewer HorizontalScrollBarVisibility="Auto" >
<Image x:Name="ImgToFill" >
</Image>
</ScrollViewer>
</StackPanel>
<StackPanel Grid.Row="2">
<Canvas Canvas.Top="70" >
<Rectangle Name="progressRectangle" Height="10" Width="0" Fill="AliceBlue" />
<Rectangle Height="12" Width="202" StrokeThickness="1" Stroke="Black" />
<TextBlock x:Name="progressText" Canvas.Left="210" Text="0%" FontSize="12" />
</Canvas>
</StackPanel>
</Grid>
接下来是page.xaml.cs(相关内容见注释):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Resources;
using System.Windows.Media.Imaging;
namespace DownLoadImg
{
public partial class Page : UserControl
{
WebClient wc = new WebClient();
public Page()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Page_Loaded);
}
//加载图片列表数据
void Page_Loaded(object sender, RoutedEventArgs e)
{
ImageList.Items.Add("1.jpg");
ImageList.Items.Add("2.png");
}
//实例化下载设置
void StartDownLoad(object o, EventArgs e)
{
//初始化相应控件信息
ImgToFill.Visibility = Visibility.Collapsed;
progressRectangle.Width = 0;
progressText.Text = "0%";
//绑定下载过程中处理的事件
wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);
wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);
//开始异步读取压缩包中的文件信息
wc.OpenReadAsync(new Uri("img.zip", UriKind.Relative), ImageList.SelectedItem);
}
void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
//实例化流资源信息,准备获取其中的图片数据
StreamResourceInfo sri = new StreamResourceInfo(e.Result as Stream, null);
//要读取的图片路径信息
String sURI = e.UserState as String;
//从流资源中获取指定的URL图片流信息
StreamResourceInfo imageStream = Application.GetResourceStream(sri, new Uri(sURI, UriKind.Relative));
BitmapImage imgsrc = new BitmapImage();
//绑定该URL图片信息并进行显示
imgsrc.SetSource(imageStream.Stream);
ImgToFill.Source = imgsrc;
ImgToFill.Visibility = Visibility.Visible;
ImgToFill.Stretch = Stretch.Fill;
}
void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
//下载过程中的进度显示
progressText.Text = e.ProgressPercentage.ToString() + "%";
progressRectangle.Width = (double)e.ProgressPercentage * 2;
}
}
}
好了,今天的内容就到这里了。
源码下载链接,请点击这里:)
TAG: silverlight, image, zip, daizhj,代震军
相关文章推荐
- 在Silverlight中读取指定URL图片包数据
- 在Silverlight中读取指定URL图片包数据
- 在Silverlight中读取指定URL图片包数据
- 在Silverlight中读取指定URL图片包数据
- 在Silverlight中读取指定URL图片包数据
- C#根据指定url下载文件并读取.csv数据转为json格式
- 需求(Java语言实现):对存有图片URL的txt文件进行逐行读取,自行下载txt文件中的图片到指定文件夹中
- java读取pdf中数据,包含表格和图片
- C#.NET上传和读取图片数据
- 从Excel中指定的sheet名称或索引读取数据到DataTable,以便用户更改sheet名称后仍能读取数据
- 关于caffe和keras图片数据读取的一点感悟
- 怎么读取BMP图片数据
- 安卓开发中HttpURLConnection 连接能否指定只走移动数据?
- java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)
- vb调用winInet API接口post数据到指定的url
- Android 网络编程之HttpURLConnection(conn.getResponseCode() != 200,从url读取写入数据)
- php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
- IOS 对相册图片进行读取、存储到指定文件夹
- YOLO模型训练自己数据-VOC格式数据集制作-ubuntu c++文件夹内图片批量读取与重命名
- URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存