/// <summary> /// Convert a file to PictureContainer /// </summary> /// <param name="fileIn"></param> /// <param name="size"></param> /// <param name="format"></param> /// <returns></returns> private static PictureContainer Convert(string fileIn, PresetSize size, ISupportedImageFormat format) { var filename = Path.GetFileNameWithoutExtension(fileIn); // Generate Url var id = Guid.NewGuid(); var path = string.Format(@"/Temp/{0}/{1}_{2}x{3}.{4}", id, filename, size.Size.Width, size.Size.Height, format.DefaultExtension); using (var imageFactory = new ImageFactory(true)) { try { // Load, resize, set the format and save an image. imageFactory.Load(fileIn) .Resize(size.Size) .Format(format); imageFactory.Save(path); if (!File.Exists(path)) throw new FileNotFoundException("File not found"); var pc = new PictureContainer { PresetSize = size, FilePath = path }; return pc; } catch (Exception ex) { Console.WriteLine(ex.ToString()); return null; } } }
/// <summary> /// Get Size list from databse or json file /// </summary> /// <param name="preset"></param> /// <returns></returns> private List<PresetSize> GetSizeListFromJson(Enums.PresetEnum preset) { var list = new List<PresetSize>(); var pp = new PlatformPreset(); try { switch (preset) { case Enums.PresetEnum.iOS: { using (var sr = new StreamReader(Server.MapPath("~/json/iOS.json"))) { pp = JsonConvert.DeserializeObject<PlatformPreset>(sr.ReadToEnd()); } break; } case Enums.PresetEnum.WindowsPhone: { using (var sr = new StreamReader(Server.MapPath("~/json/Windows.json"))) { pp = JsonConvert.DeserializeObject<PlatformPreset>(sr.ReadToEnd()); } break; } case Enums.PresetEnum.Android: { using (var sr = new StreamReader(Server.MapPath("~/json/Android.json"))) { pp = JsonConvert.DeserializeObject<PlatformPreset>(sr.ReadToEnd()); } break; } default: { break; } } } catch (Exception ex) { throw ex; } if (pp?.Preset != null) { foreach (var size in pp.Values) { var ps = new PresetSize { Size = new Size(size[0], size[1]), PresetEnum = preset }; list.Add(ps); } } return list; }