예제 #1
0
        private async Task <UploadedImage> CreateUploadedImageAsync(string fileName, IFormFile formFile)
        {
            UploadedImage uploadedImage = new UploadedImage(fileName);

            using (var memoryStream = new MemoryStream())
            {
                await formFile.CopyToAsync(memoryStream);

                uploadedImage.Data  = memoryStream.ToArray();
                uploadedImage.Image = System.Drawing.Image.FromStream(memoryStream);
            }

            return(uploadedImage);
        }
예제 #2
0
        private byte[] ScaleImage(UploadedImage uploadedImage, double maxWidth)
        {
            if (uploadedImage.Image.Width > maxWidth)
            {
                double scaleFactor  = uploadedImage.Image.Width / maxWidth;
                double scaledHeight = uploadedImage.Image.Height / scaleFactor;

                var bitmap = _imageResizer.ResizeImage(uploadedImage.Image, (int)maxWidth, (int)scaledHeight);

                byte[] scaledFile;
                using (var memoryStream = new MemoryStream())
                {
                    bitmap.Save(memoryStream, ImageFormat.Png);
                    scaledFile = memoryStream.ToArray();
                }

                return(scaledFile);
            }
            else
            {
                return(uploadedImage.Data);
            }
        }