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());
            }
        }
Example #9
0
        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");
 }
Example #17
0
        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);
            }
        }