Пример #1
0
        /// <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;
                }
            }
        }
Пример #2
0
        /// <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;
        }