private static void Quality(MagickImage image, ImageParameters parameters) { if (!(parameters.Quality is null)) { image.Quality = parameters.Quality.Value; } }
private ActionResult IllegalCrop(ImageParameters parameters) { var caption = $"Acceptable crops:\n{string.Join("\n", Configuration.Crops.Select(m => $"{m.Name}"))}"; var image = ImageController.GetCaption(caption); this.Response.RegisterForDispose(image); ImageController.Resize(image, parameters); return(this.BadRequest(image)); }
private ActionResult NotFound(ImageParameters parameters) { var image = ImageController.GetCaption("Not found"); this.Response.RegisterForDispose(image); ImageController.Crop(image, parameters, new ImageDetails(3797 / 2, 5315 / 2)); ImageController.Resize(image, parameters); ImageController.Quality(image, parameters); return(this.NotFound(image)); }
private static void Download(ImageParameters parameters, HttpContext context) { if (parameters.Download) { var mapping = Configuration.PhotoMappings.Single(row => row.MediaType == parameters.MediaType); var extension = mapping.Extension; var fileName = string.Format("{0}.{1}", parameters.Id, extension); var disposition = new ContentDispositionHeaderValue("attachment") { FileName = fileName }; context.Response.Headers[HeaderNames.ContentDisposition] = disposition.ToString(); } }
private async Task <ActionResult> Process(ImageParameters parameters) { var details = await ImageDetails.GetById(parameters.Id); var image = await ImageController.GetImage(parameters.Id); this.Response.RegisterForDispose(image); ImageController.Crop(image, parameters, details); ImageController.Resize(image, parameters); ImageController.Quality(image, parameters); ImageController.Metadata(image, details); return(this.Ok(image)); }
public async Task <ActionResult> Get(ImageParameters parameters) { try { return(await this.Process(parameters)); } catch (ImageNotFoundException) { return(this.NotFound(parameters)); } catch (UnkownCropException) { return(this.IllegalCrop(parameters)); } }
private static void Resize(MagickImage image, ImageParameters parameters) { if (parameters.Width is null && parameters.Height is null) { return; } var size = new MagickGeometry( parameters.Width.GetValueOrDefault(image.Width), parameters.Height.GetValueOrDefault(image.Height)); image.ColorSpace = ColorSpace.RGB; image.Scale(size); image.RePage(); image.ColorSpace = ColorSpace.sRGB; }
private static void Crop(MagickImage image, ImageParameters parameters, ImageDetails details) { if (parameters.Crop is null) { return; } var crop = Configuration.Crops.SingleOrDefault(c => c.Name == parameters.Crop); if (crop.Name is null) { throw new UnkownCropException(); } var x = 1; if (!(crop.OffsetX is null)) { x = details.CenterX - crop.OffsetX.Value; } image.Crop(x, details.CenterY - crop.OffsetY, crop.Width, crop.Height); }