我正在将图像从URL链接保存到独立存储,稍后我需要将它绑定到图像。从URL中读取图像将其保存在独立存储中,然后读取并绑定到图像源
这是从哪里获得并保存图像的代码:
(路径值并且该值是一个类属性)
private void saveImage(string name)
{
path = name;
string uri = "http://sherutnetphpapi.cloudapp.net/mini_logos/" + path;
WebClient m_webClient = new WebClient();
imageUri = new Uri(uri, UriKind.Relative);
m_webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_ImageOpenReadCompleted);
m_webClient.OpenReadAsync(imageUri);
}
void webClient_ImageOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
using (IsolatedStorageFile myIsf = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsf.FileExists(path))
{
myIsf.DeleteFile(path);
}
IsolatedStorageFileStream fileStream = myIsf.CreateFile(path);
StreamResourceInfo sri = null;
sri = Application.GetResourceStream(imageUri);
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(sri.Stream);
WriteableBitmap wb = new WriteableBitmap(bitmap);
// Encode WriteableBitmap object to a JPEG stream.
System.Windows.Media.Imaging.Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);
wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);
fileStream.Close();
}
}
在另一个I类读出的图像,并将其结合到图像源:
public class CompanyItem
{
public String companyIcon { get; set; } //save the file name in the isolated storge
public String companyName { get; set; }
[IgnoreDataMember]
public BitmapImage ReadImageFromStorage
{
get
{
BitmapImage image = new BitmapImage();
IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();
string isoFileName = this.companyIcon;
var stream = isoStore.OpenFile(isoFileName, System.IO.FileMode.Open);
image.SetSource(stream);
return image;
}
}
XAML中的代码是:
<Image Height="63" HorizontalAlignment="Left" Margin="392,7,0,0" Name="imgConpamyIcon" Stretch="Fill" VerticalAlignment="Top" Width="70" CacheMode="BitmapCache" Source="{Binding ReadImageFromStorage}" />
图像是在ListBox
请帮我内一个列表框....这让我发疯
你在这个问题中有什么问题?哪里出问题了? – nkchandra
当我运行程序时,我得到异常:“价值不在预期的范围内”在类的CompanyItem行image.SetSource(流); – tovash
当程序试图获取并保存图像时,我得到以下消息:“由于'uriString'参数代表绝对URI,因此无法创建相对URI。 – tovash