Silverlight中加载超过10M的JPG格式大图,有什么好的解决方法吗?
2个回答
展开全部
没事,直接用异步传输方式就行。但在文件接收方,要扩展接收数据的大小。
追问
你好,能详细点吗?有什么范例程序或是博文,给我看看,跪求啊
追答
简单点的:if (!String.IsNullOrWhiteSpace(dic["CPic"]))
{
ImageBrush img = new ImageBrush();
Uri uri = new Uri(App.Current.Host.Source, "/Server/LoadImage.ashx?filename=" + dic["CPic"] + "&log=" + m_Custom.CCode + "&DirType=Customer");
//MessageBox.Show(uri.AbsoluteUri );
BitmapImage bmp = new BitmapImage();
bmp.UriSource = uri;
img.Stretch = Stretch.Fill;
img.ImageSource = bmp;
Lay_ImageView.Source = bmp;
}//*/
加处理的:
Uri uri = new Uri(m_strWebSite+ "/LoadImage.ashx?filename=" + ImageFile;
WebClient wc = new WebClient();
/* var s=wc.DownloadData(uri);
using (var ms = new MemoryStream(wc.DownloadData(uri)))
{
bmp.BeginInit();
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.StreamSource = ms;
bmp.EndInit();
}//*/
wc.DownloadDataCompleted+=new DownloadDataCompletedEventHandler(wc_DownloadDataCompleted);
wc.DownloadDataAsync(uri);
下载图片在wc_DownloadDataCompleted函数中处理。
反正是异步,下载完再处理。
服务端用WCF也行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询