public Task StoreImageAsync(string url, Il2CppStructArray <byte> data) { if (string.IsNullOrEmpty(url)) { return(Task.CompletedTask); } return(Task.Run(() => { try { if (myFileDatabase.FileStorage.Exists(url)) { return; } myFileDatabase.FileStorage.Upload(url, url, new MemoryStream(data)); var newImageInfo = new StoredImageInfo { Id = url, LastAccessed = DateTime.MinValue }; myImageInfos.Upsert(newImageInfo); } catch (LiteException ex) { if (MelonDebug.IsEnabled()) { MelonLogger.Warning($"Database exception in image store handler: {ex}"); } } })); }
public async Task LoadImageAsync(string url, Action <Texture2D?> onDone) { try { if (!myFileDatabase.FileStorage.Exists(url)) { onDone(null); return; } await Task.Run(() => { }).ConfigureAwait(false); using var imageStream = myFileDatabase.FileStorage.OpenRead(url); using var image = await Image.LoadAsync <Rgba32>(imageStream).ConfigureAwait(false); var newImageInfo = new StoredImageInfo { Id = url, LastAccessed = DateTime.UtcNow }; myImageInfos.Upsert(newImageInfo); await TaskUtilities.YieldToMainThread(); try { onDone(CreateTextureFromImage(image)); } catch (Exception ex) { MelonLogger.Error($"Exception in onDone callback: {ex}"); } } catch (Exception ex) { if (MelonDebug.IsEnabled()) { MelonLogger.Warning($"Exception in image load, will delete offending image: {ex}"); } myFileDatabase.FileStorage.Delete(url); myImageInfos.Delete(url); onDone(AssetsHandler.PreviewLoading.texture); } }
public static BitmapSource LoadImage(this StoredImageInfo storedImageInfo) { var bs = ImageSaveLoadService.GetBitmapImage(storedImageInfo.StoredDateTime, storedImageInfo.ImageGuid); return(bs); }
public ActionResult GetProductImgs(int id) { var imgs = db.ProductImages.Where(p => p.ProductId == id).ToList(); var storedImgList = new List<StoredImageInfo>(); foreach(var item in imgs) { var storedImg = new StoredImageInfo { Id = item.Id.ToString(), FileName = item.Name, Url = item.Url }; storedImgList.Add(storedImg); } return Json(new { Data = storedImgList },JsonRequestBehavior.AllowGet); }