public SimaLandImageController( SimaLandService simaLandService, ImageProcessingService imageProcessingService) { _simaLandService = simaLandService; _imageProcessingService = imageProcessingService; }
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)); }
/// <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); }
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); }
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")); }
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")); }
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")); }
public ArchiveItemViewModel(SettingsService settings, ArchivesService archives, ApiService api, PlatformService platform, TabsService tabs, ImageProcessingService imageProcessing) : base(settings, archives, api, platform, tabs) { ImageProcessing = imageProcessing; }