public BitmapImage GetDigimonImage(int digimonId)
{
DigiImage image = ImagesCollection.Find(i => i.Id == digimonId);
if (image.Image != null) {
return image.Image;
}
string resource = EnvironmentManager.ResolveResource(DIGIROTATION_DIR,
string.Format(PNG_FORMAT, digimonId),
string.Format(URLUtils.DIGIROTATION_IMAGE_REMOTE_FORMAT, digimonId));
if (resource != null) {
Stream str = File.OpenRead(resource);
if (str == null) {
return null;
}
MemoryStream img_stream = new MemoryStream();
str.CopyTo(img_stream);
str.Close();
try {
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = img_stream;
bitmap.EndInit();
bitmap.Freeze();
ImagesCollection.Add(new DigiImage() {
Image = bitmap,
Id = digimonId
});
return bitmap;
} catch (Exception) { }
}
return null;
}