Esempio n. 1
0
        private DtoImage AddOverlay(DtoImage sourcefile, string overlayId, int resolution)
        {
            var outputfile = new DtoImage();

            using (var inputstream = new MemoryStream(sourcefile.Data))
                using (var overlay = GetOverlay(overlayId, resolution))
                    using (var output = new MemoryStream())
                    {
                        var imgInput   = new Image(inputstream);
                        var imgOverlay = new Image(overlay);

                        int height = Convert.ToInt32(Math.Sqrt((resolution * 1000000) / (((double)imgInput.Height) * (double)imgInput.Width)) * (double)imgInput.Height);
                        int width  = Convert.ToInt32(Math.Sqrt((resolution * 1000000) / (((double)imgInput.Height) * (double)imgInput.Width)) * (double)imgInput.Width);

                        int overlaysize = Convert.ToInt32((double)width * 0.2);
                        int padding     = overlaysize + (resolution * 10);

                        imgInput.Resize(width, height)
                        .Blend(imgOverlay.Resize(overlaysize, overlaysize).Pad(padding, padding), 80)
                        .Save(output);
                        outputfile.Data     = output.ToArray();
                        outputfile.FileName = sourcefile.FileName;
                    }
            return(outputfile);
        }
Esempio n. 2
0
        public async Task <FileUploadResult> HandleUpload(string fileName, Stream inputStream)
        {
            var dtoImages = new DtoImage();
            var bytes     = new byte[16 * 1024];

            using (var memoryStream = new MemoryStream())
            {
                int count;
                while ((count = inputStream.Read(bytes, 0, bytes.Length)) > 0)
                {
                    memoryStream.Write(bytes, 0, count);
                }
                dtoImages.Data = memoryStream.ToArray();
            }
            dtoImages.FileName = fileName;
            return(new FileUploadResult {
                Identifier = await SaveMessageObject(dtoImages)
            });
        }