Esempio n. 1
0
 public SimaLandImageController(
     SimaLandService simaLandService,
     ImageProcessingService imageProcessingService)
 {
     _simaLandService        = simaLandService;
     _imageProcessingService = imageProcessingService;
 }
Esempio n. 2
0
 public ArchiveImageViewModel(ApiService api, PlatformService platform, ImagesService images, ImageProcessingService imageProcessing)
 {
     Api             = api;
     Platform        = platform;
     Images          = images;
     ImageProcessing = imageProcessing;
 }
        /// <summary>
        /// Takes the photo.
        /// </summary>
        /// <returns>The photo.</returns>
        public async Task <byte[]> TakePhoto()
        {
            var photo = await PhotoService.TaskPhotoAsync();

            if (photo.Length == 0)
            {
                return(photo);
            }

            // Track Camera usage
            AnalyticService.Track("Photo taken");

            ImageProcessingService.Open(photo);
            var detections = await DetectionService.DetectAsync(photo);

            foreach (var d in detections)
            {
                // Track each detection
                AnalyticService.Track($"Detection done:{d.Emotion.ToLower()}");

#if DEBUG
                ImageProcessingService.DrawDebugRect(d.Rectangle);
#endif
                ImageProcessingService.DrawImage(FileService.LoadResource($"{d.Emotion.ToLower()}.png"), d.Rectangle);
            }

            var finalImage = ImageProcessingService.GetImage();
            ImageProcessingService.Close();

            return(finalImage);
        }
 public SelfPostsController(PostDataSource pds, UserDataSource uds,
                            ImageProcessingService imgSrv, AzureStorage stSrv)
 {
     _postDataSource = pds ?? throw new ArgumentNullException(nameof(pds));
     _userDataSource = uds ?? throw new ArgumentNullException(nameof(uds));
     _imageService   = imgSrv ?? throw new ArgumentNullException(nameof(imgSrv));
     _storageService = stSrv ?? throw new ArgumentNullException(nameof(stSrv));
 }
Esempio n. 5
0
        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
            Activity        reply     = activity.CreateReply("Please send your selfie, to participate in the rating.");

            if (activity.Type == ActivityTypes.Message)
            {
                if (activity.Attachments != null && activity.Attachments.Count > 0)
                {
                    var photo = activity.Attachments[0];
                    if (!photo.ContentType.Contains("webp"))
                    {
                        BlobStorageProvider blobProvider = new BlobStorageProvider();
                        var          imageBlob           = blobProvider.SaveImage(photo.ContentUrl, photo.ContentType);
                        FaceProvider faceProvider        = new FaceProvider();
                        var          faces = await faceProvider.GetFaces(imageBlob.Uri.AbsoluteUri);

                        if (faces != null)
                        {
                            reply = activity.CreateReply($"Thanks for your rating! See more results here: http://akvelonrating.azurewebsites.net/");
                            await ImageProcessingService.GetService().Process(imageBlob, faces);

                            var attachments = new List <Attachment>();
                            attachments.Add(new Attachment()
                            {
                                ContentUrl  = imageBlob.Uri.AbsoluteUri,
                                ContentType = photo.ContentType,
                                Name        = photo.Name
                            });
                            reply.Attachments = attachments;
                        }
                        else
                        {
                            await imageBlob.DeleteAsync();

                            reply = activity.CreateReply($"Sorry. Faces were not found.");
                        }
                    }
                    else
                    {
                        reply = activity.CreateReply($"I'm not sure, that you look like this... Please send your selfie, to participate in the rating.");
                    }
                }
                else
                {
                    if (activity.Text.ToLower().Contains("start") || activity.Text.ToLower().Contains("help"))
                    {
                        reply = activity.CreateReply("Hello! I'm Akvelon Emotional Rating bot! I am receiving the photo (selfie) and I am making an assessment of the event in accordance with the emotions on selfie. Send your foto, to participate in the rating.");
                    }
                }
            }

            await connector.Conversations.ReplyToActivityAsync(reply);

            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
Esempio n. 6
0
        public void UpdateAllWalmartImageDifferences()
        {
            var imageService = new ImageProcessingService(_dbFactory, _time, _log, AppSettings.WalmartImageDirectory);

            imageService.UpdateDifferenceForAllImages(MarketType.Walmart, "", null);
            //var styles = imageServie.GetStylesWithDifferentImages(_dbFactory);
            //Console.WriteLine(styles);
            //var importPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files/OldNewDbImages.csv");
            //imageService.ProcessImageFile(importPath, _dbFactory);
        }
Esempio n. 7
0
        private async Task Process()
        {
            var imageName = Path.Combine(BasePath, ddlImages.SelectedItem.ToString());
            var result    = await ImageProcessingService.ProcessAsync(imageName);

            var sb = new StringBuilder();
            //Open the source image and create the bitmap for the rotatated image
            var sourceImage = new Bitmap(imageName);
            var rotateImage = new Bitmap(sourceImage.Width, sourceImage.Height);

            //Set the resolution for the rotation image
            rotateImage.SetResolution(sourceImage.HorizontalResolution, sourceImage.VerticalResolution);
            //Create a graphics object
            using (Graphics graphics = Graphics.FromImage(rotateImage))
            {
                //Rotate the image
                graphics.TranslateTransform((float)sourceImage.Width / 2, (float)sourceImage.Height / 2);
                graphics.RotateTransform(90);
                graphics.TranslateTransform(-(float)sourceImage.Width / 2, -(float)sourceImage.Height / 2);
                graphics.DrawImage(sourceImage, new System.Drawing.Point(0, 0));
                graphics.CompositingQuality = CompositingQuality.HighSpeed;
                graphics.InterpolationMode  = InterpolationMode.HighQualityBicubic;
                graphics.CompositingMode    = CompositingMode.SourceCopy;
                //graphics.RotateTransform(90);
                foreach (var recResult in result.ExtractedTextModel.OcrResults)
                {
                    foreach (var line in recResult.Lines)
                    {
                        sb.AppendLine(line.Text + "<br>");
                        var y1 = (float)line.BoundingBox[0];
                        var x1 = (float)line.BoundingBox[1];
                        var y2 = (float)line.BoundingBox[2];
                        var x2 = (float)line.BoundingBox[3];
                        var y3 = (float)line.BoundingBox[4];
                        var x3 = (float)line.BoundingBox[5];
                        var y4 = (float)line.BoundingBox[6];
                        var x4 = (float)line.BoundingBox[7];
                        graphics.DrawLine(new Pen(Color.Aquamarine, 5), x1, y1, x2, y2);
                        graphics.DrawLine(new Pen(Color.Aquamarine, 5), x2, y2, x3, y3);
                        graphics.DrawLine(new Pen(Color.Aquamarine, 5), x3, y3, x4, y4);
                        graphics.DrawLine(new Pen(Color.Aquamarine, 5), x4, y4, x1, y1);
                    }
                }
            }
            pictureBox1.Image        = rotateImage;
            webBrowser1.DocumentText = sb.ToString() + "<br>" + JsonConvert.SerializeObject(result.ExtractedTextModel.OcrResults, Formatting.Indented);
        }
        protected override void RunCallback()
        {
            var dbFactory   = new DbFactory();
            var time        = new TimeService(dbFactory);
            var settings    = new SettingsService(dbFactory);
            var htmlScraper = new HtmlScraperService(GetLogger(), time, dbFactory);
            var log         = GetLogger();

            var imageManager           = new ImageManager(GetLogger(), htmlScraper, dbFactory, time);
            var imageProcessingService = new ImageProcessingService(dbFactory,
                                                                    time,
                                                                    log,
                                                                    AppSettings.WalmartImageDirectory);

            var lastSyncDate = settings.GetImageUpdateDate();

            LogWrite("Last sync date=" + lastSyncDate);

            log.Info("UpdateStyleImageTypes");
            imageManager.UpdateStyleImageTypes(); //NOTE: call always (every 5 minutes)

            //if (!lastSyncDate.HasValue ||
            //    (time.GetUtcTime() - lastSyncDate) > _betweenProcessingInverval)
            {
                log.Info("UpdateListingsLargeImages");
                imageManager.UpdateParentItemsLargeImages(MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId, null, null);
                //imageManager.UpdateParentItemsLargeImages(MarketType.AmazonEU, null, null);

                imageManager.UpdateItemsLargeImages(MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId, null, null);
                //imageManager.UpdateItemsLargeImages(MarketType.AmazonEU, null, null);

                //imageManager.UpdateItemsLargeImages(MarketType.Walmart, null, null);

                log.Info("UpdateStyleLargeImage");
                imageManager.UpdateStyleLargeImage();

                log.Info("UpdateDifferenceForAllImages");
                imageProcessingService.UpdateDifferenceForAllImages(MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId, null);
                //imageProcessingService.UpdateDifferenceForAllImages(MarketType.Walmart, "", null);

                log.Info("ReplaceStyleLargeImage");
                imageManager.ReplaceStyleLargeImage();

                settings.SetImageUpdateDate(time.GetUtcTime());
            }
        }
        public ActionResult SubmitPost(SubmitBookViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var bookService = new BookListingService(this.Server);
            var newListing  = BookListing.New(model.BookTitle, model.BookDescription, model.Price);

            bookService.SaveNewListing(newListing);

            if (model.BookImage != null)
            {
                var imageService = new ImageProcessingService(this.Server);
                imageService.ProcessImage(model.BookImage.InputStream, newListing);
            }

            return(this.RedirectToAction("Index", "Books"));
        }
Esempio n. 10
0
        public ActionResult SubmitPost(SubmitPhotoEntryViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var entryService = new PhotoEntryService(this.Server);
            var newEntry     = PhotoEntry.New(model.PhotoTitle, model.PhotoDescription);

            entryService.SaveNewEntry(newEntry);

            if (model.Image != null)
            {
                var imageService = new ImageProcessingService(this.Server);
                imageService.ProcessImage(model.Image.InputStream, newEntry);
            }

            return(this.RedirectToAction("Index", "Photos"));
        }
Esempio n. 11
0
        public ActionResult SubmitPost(BookListingSubmissionModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var bookService = new BookListingService(this.listingsFolder, this.imagesFolder);
            var newListing  = BookListing.New(model.BookTitle, model.BookDescription, model.Price);

            if (model.BookImage != null)
            {
                var imageService = new ImageProcessingService(this.imagesFolder);
                imageService.ProcessImage(model.BookImage.OpenReadStream(), newListing);
            }

            bookService.SaveNewListing(newListing);

            return(this.RedirectToAction("Index", "Books"));
        }
Esempio n. 12
0
 public ArchiveItemViewModel(SettingsService settings, ArchivesService archives, ApiService api, PlatformService platform, TabsService tabs, ImageProcessingService imageProcessing) : base(settings, archives, api, platform, tabs)
 {
     ImageProcessing = imageProcessing;
 }