public virtual IImageAnalysis Create(IImageSearchResult result)
        {
            var analysis = Create();

            if (result == null)
            {
                return(analysis);
            }

            analysis.FacialAnalysis = result.FacialAnalysis;
            analysis.TextAnalysis   = result.TextAnalysis;
            analysis.VisionAnalysis = result.VisionAnalysis;
            analysis.People         = result.People;

            Item i = DataWrapper.GetItemByUri(result?.UniqueId ?? string.Empty);

            if (i == null)
            {
                return(analysis);
            }

            analysis.ImageHeight = MediaWrapper.GetImageHeight(i);
            analysis.ImageWidth  = MediaWrapper.GetImageWidth(i);
            analysis.ImageUrl    = $"/sitecore/shell/Applications/-/media/{i.ID.Guid:N}.ashx";

            return(analysis);
        }
Esempio n. 2
0
        public List <string> ValidateVisionImage(MediaItem image, int newHeight, int newWidth)
        {
            List <string> validationErrors = new List <string>();
            List <string> validExtensions  = new List <string> {
                "jpg", "jpeg", "png", "gif", "bmp"
            };

            //Supported image formats: JPEG, PNG, GIF, BMP.
            if (!validExtensions.Contains(image.Extension))
            {
                validationErrors.Add("Vision API only supports JPEG, PNG, GIF, and BMP.");
            }

            //Image dimensions must be at least 50 x 50.
            var height = MediaWrapper.GetImageHeight(image);
            var width  = MediaWrapper.GetImageWidth(image);

            if (newHeight > height || newWidth > width)
            {
                validationErrors.Add("New dimensions must at be smaller than the original dimensions.");
            }

            if (height < 50 || width < 50)
            {
                validationErrors.Add("Vision API images must at least be 50px in height and width.");
            }

            //Image file size must be less than 4MB.
            if (image.Size >= 4000000)
            {
                validationErrors.Add("Vision API images must be less than 4MB.");
            }

            return(validationErrors);
        }
Esempio n. 3
0
        public ActionResult SmartCrop(string id, string language, string db)
        {
            if (!IsSitecoreUser())
            {
                return(LoginPage());
            }

            Item m = DataWrapper.GetItemByIdValue(id, db);

            var height = MediaWrapper.GetImageHeight(m);
            var width  = MediaWrapper.GetImageWidth(m);

            var model = new SmartCrop()
            {
                Height = height,
                Width  = width
            };

            return(View("SmartCrop", model));
        }
        public List <string> ValidateFaceImage(MediaItem image)
        {
            List <string> validationErrors = new List <string>();
            List <string> validExtensions  = new List <string> {
                "jpg", "jpeg", "png", "gif", "bmp"
            };

            //JPEG, PNG, GIF (the first frame), and BMP format are supported.
            if (!validExtensions.Contains(image.Extension))
            {
                validationErrors.Add("Face API only supports JPEG, PNG, GIF, and BMP.");
            }

            //valid dimensions - 36x36 to 4096x4096
            var height = MediaWrapper.GetImageHeight(image);
            var width  = MediaWrapper.GetImageWidth(image);

            if (height < 36 || width < 36)
            {
                validationErrors.Add("Face API images must at least be 36px in height and width.");
            }

            if (height > 4096 || width > 4096)
            {
                validationErrors.Add("Face API images cannot be more than 4096px in height or width.");
            }

            //valid file sizes - 1KB to 6MB
            if (image.Size < 1000)
            {
                validationErrors.Add("Face API images must be at least 1KB.");
            }

            if (image.Size > 6000000)
            {
                validationErrors.Add("Face API images can't be more than 6MB.");
            }

            return(validationErrors);
        }