Beispiel #1
0
        public void SaveImage(ImageStorageInfo storageInfo, int numberOfChunks, string thumbnail)
        {
            var recordPath = Path.Combine(Properties.Settings.Default.ImagesDir, "record.xml");

            var record = new Record();

            if (File.Exists(recordPath))
            {
                record = XmlFileSerializer.Deserialize <Record>(recordPath);
            }

            var images = record.Images?.ToList() ?? new List <Image>();

            images.Add(new Image
            {
                CreatedAt      = storageInfo.CreatedAt,
                DirectoryName  = storageInfo.DirectoryName,
                NumberOfChunks = numberOfChunks,
                Thumbnail      = thumbnail
            });

            record.Images = images.ToArray();

            XmlFileSerializer.Serialize(record, recordPath);
        }
Beispiel #2
0
        public ImageStorageInfo Initialize()
        {
            var storageInfo = new ImageStorageInfo();
            var date        = DateTime.Now;
            var dirName     = date.ToString("yyyy-MM-dd_HH-mm-ss");
            var path        = Path.Combine(Properties.Settings.Default.ImagesDir, dirName);

            storageInfo.CreatedAt     = date;
            storageInfo.DirectoryName = dirName;
            storageInfo.FullPath      = path;

            Directory.CreateDirectory(path);

            return(storageInfo);
        }
Beispiel #3
0
        public string GetThumbnail(ImageStorageInfo storageInfo)
        {
            var files = Directory.GetFiles(storageInfo.FullPath, "*.jpg");

            if (files.Length == 0)
            {
                return(null);
            }

            var index = (int)Math.Round((double)(files.Length / 2));

            if (index < 0 || index > files.Length - 1)
            {
                index = 0;
            }

            string result;

            using (var fs = File.Open(files[index], FileMode.Open, FileAccess.Read))
            {
                using (var img = System.Drawing.Image.FromStream(fs))
                {
                    var destinationHeight = (int)(img.Height * 1.0 / (img.Width * 1.0) * 200);
                    using (var thumb = img.GetThumbnailImage(200, destinationHeight, () => false, IntPtr.Zero))
                    {
                        byte[] buff;
                        using (var ms = new MemoryStream())
                        {
                            thumb.Save(ms, ImageFormat.Jpeg);
                            buff = ms.ToArray();
                        }

                        result = Convert.ToBase64String(buff);
                    }
                }
            }

            return(result);
        }