public IActionResult Get(string file, int width, int height, string backgroundColour = null, string watermark = null, string fileType = "png") { try { var criteriaBuilder = ImageCriteria.NewBuilder() .SetSize(width, height) .SetImageFormat(ParseFormat(fileType)); if (backgroundColour != null) { criteriaBuilder.SetBackgroundColour(backgroundColour); } if (watermark != null) { criteriaBuilder.SetWatermark(watermark); } var criteria = criteriaBuilder.Build(file); var imageBytes = _imageFetcher.Fetch(criteria); return(File(imageBytes, criteria.Format.MimeType())); } catch (ArgumentException ex) { return(BadRequest(new { errorMessage = ex.Message })); } catch (Exception ex) { _logger.LogError("Failed to fetch image " + ex.Message); return(StatusCode(500)); } }
public void TestRGBCriteria() { var criteria = ImageCriteria.NewBuilder() .SetBackgroundColour("255,0,0") .Build("test.pdf"); Assert.AreEqual(ImageFormat.Png, criteria.Format); Assert.AreEqual(Tuple.Create(255, 0, 0), criteria.RGBBackgroundColour); }
public void TestDefaultCriteria() { var criteria = ImageCriteria.NewBuilder() .Build("test.pdf"); Assert.AreEqual("test.pdf", criteria.File); Assert.AreEqual(ImageFormat.Png, criteria.Format); Assert.AreEqual(null, criteria.RGBBackgroundColour); }
public void TestInvalidCriteriaThrowsException() { Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder() .SetBackgroundColour("")); Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder() .SetSize(100000, 1000000)); Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder() .SetSize(-1, -20)); }