public void CalculateSize_Max() { var result = ImageRequestValidator.CalculateSize("max"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageSizeMode.Max); Assert.AreEqual(0f, result.Width); Assert.AreEqual(0f, result.Height); }
public void CalculateSize_Width_Height() { var result = ImageRequestValidator.CalculateSize("256,512"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageSizeMode.Distort); Assert.AreEqual(256, result.Width); Assert.AreEqual(512, result.Height); }
public void CalculateSize_Invalid() { var result = ImageRequestValidator.CalculateSize("!256,a"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageSizeMode.MaintainAspectRatio); Assert.AreEqual(256, result.Width); Assert.AreEqual(100, result.Height); }
public void CalculateSize_Pct_Valid_Big_Float() { var result = ImageRequestValidator.CalculateSize("pct:50.0000000000000000000000000000000000000000000000000001"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageSizeMode.PercentageScaled); Assert.AreEqual(0f, result.Width); Assert.AreEqual(0f, result.Height); Assert.AreEqual(0.5f, result.Percent); }
public void CaluclateRegion_Pct() { var result = ImageRequestValidator.CalculateRegion("pct:41.6,7.5,40,70"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageRegionMode.PercentageRegion); Assert.AreEqual(41.6f, result.X); Assert.AreEqual(7.5f, result.Y); Assert.AreEqual(40f, result.Width); Assert.AreEqual(70f, result.Height); }
public void CaluclateRegion_Square() { var result = ImageRequestValidator.CalculateRegion("square"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageRegionMode.Square); Assert.AreEqual(0f, result.X); Assert.AreEqual(0f, result.Y); Assert.AreEqual(0f, result.Width); Assert.AreEqual(0f, result.Height); }
public void CaluclateRegion_Region() { var result = ImageRequestValidator.CalculateRegion("256,256,256,256"); Assert.IsNotNull(result); Assert.AreEqual(result.Mode, ImageRegionMode.Region); Assert.AreEqual(256, result.X); Assert.AreEqual(256, result.Y); Assert.AreEqual(256, result.Width); Assert.AreEqual(256, result.Height); }
public ImageSize Default() { try { return(ImageRequestValidator.CalculateSize(RegionString)); } catch (Exception) { return(new ImageSize()); } }
public ImageRegion Custom() { try { return(ImageRequestValidator.CalculateRegion(RegionString)); } catch (Exception) { return(new ImageRegion()); } }
public void CaluclateRegion_Invalid_With_4_comma() { var result = ImageRequestValidator.CalculateRegion("12334265346yu,,,,"); }
public void CaluclateRegion_Invalid() { var result = ImageRequestValidator.CalculateRegion("blah"); }
public void CaluclateRegion_Square_Invalid() { var result = ImageRequestValidator.CalculateRegion("squared"); }
public void CaluclateRegion_Full_Invalid() { var result = ImageRequestValidator.CalculateRegion("fullish"); }
public void CalculateSize_Empty_Width_Height() { var result = ImageRequestValidator.CalculateSize(","); }
public void CalculateSize_Pct_Invalid_Int() { var result = ImageRequestValidator.CalculateSize("pct:50f"); }
public void CaluclateRegion_Pct_Inavlid() { var result = ImageRequestValidator.CalculateRegion("pct:blah,blah,blah,blah"); }
private async Task <dynamic> ImageRequest(dynamic parameters, CancellationToken token) { try { var filename = parameters.id; var identifier = string.Format("ark:/{0}/{1}", parameters.naan, parameters.id); (var maxWidth, var maxHeight, var maxArea) = GetSizeConstraints(Conf); var requestId = Context.GetOwinEnvironment()["RequestId"] as string; var request = ImageRequestValidator.Validate( parameters.region, parameters.size, parameters.rotation, parameters.quality, parameters.format, requestId, maxWidth, maxHeight, maxArea, Conf.SupportedFormats()); Log.Debug("{@Request}", request); var imageUri = new Uri(new Uri(Conf.Location), filename); var allowSizeAboveFull = Conf.AllowSizeAboveFull; var processor = new ImageProcessing.ImageProcessing { HttpClient = HttpClient, Log = Log }; Stream ms = await processor.ProcessImage(imageUri, request, Conf.ImageQuality, allowSizeAboveFull, Conf.PdfMetadata); ImageFormat f = request.Format; string mimetype = f.GetAttribute <ImageFormatMetadataAttribute>().MimeType; return(new StreamResponse(() => ms, mimetype) .WithHeader("Link", string.Format("<{0}>;rel=\"profile\"", new ImageInfo().Profile.First())) #if !DEBUG .AsAttachment(string.Format("{0}.{1}", (string)parameters.id, (string)parameters.format))); #else ; #endif } catch (FileNotFoundException e) { Log.Error("Unable to load source image @{FileName}", e.FileName); return(HttpStatusCode.NotFound); } catch (NotImplementedException e) { Log.Information(e, "Un-implemented feature requested"); return(Response.AsJson(e.Message, HttpStatusCode.BadRequest)); } catch (ArgumentException e) { Log.Error(e, "Error parsing argument"); return(Response.AsJson(e.Message, HttpStatusCode.BadRequest)); } catch (FormatException e) { Log.Error(e, "Error parsing argument"); return(Response.AsJson(e.Message, HttpStatusCode.BadRequest)); } catch (Exception e) { Log.Error(e, "Unexpected exception"); return(HttpStatusCode.InternalServerError); } }