public static async Task <CloudQueueMessage> Run( [QueueTrigger("to-ascii-conversion")] AsciiArtRequest request, [Blob("%input-container%/{BlobRef}", FileAccess.Read)] Stream inBlob, [Blob("%output-container%/{BlobRef}", FileAccess.Write)] Stream outBlob, TraceWriter log) { log.Info("(Fun3) Starting to convert image to ASCII art..."); var convertedImage = ConvertImageToAscii(inBlob, request.Width); await outBlob.WriteAsync(convertedImage, 0, convertedImage.Length); var result = new AsciiArtResult(request.BlobRef, ConfigurationManager.AppSettings["output-container"], request.Description, request.Tags); log.Info("(Fun3) Finished converting image."); return(result.AsQueueItem()); }
public static async Task <CloudQueueMessage> Run( [ServiceBusTrigger("mytopic", "to-ascii", AccessRights.Manage)] AnalysisReq request, [Blob("%input-container%/{BlobRef}", FileAccess.Read)] Stream inBlob, TraceWriter log) { log.Info("(Fun2) Running image analysis..."); var subscriptionKey = ConfigurationManager.AppSettings["cognitive-services-key"]; var serviceUri = ConfigurationManager.AppSettings["cognitive-services-uri"]; var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = serviceUri }; var result = await client.AnalyzeImageInStreamAsync(inBlob, new[] { VisualFeatureTypes.Categories, VisualFeatureTypes.Color, VisualFeatureTypes.Description, VisualFeatureTypes.Faces, VisualFeatureTypes.ImageType, VisualFeatureTypes.Tags }); var asciiArtRequest = new AsciiArtRequest { BlobRef = request.BlobRef, Width = request.Width, Description = string.Join(",", result.Description.Captions.Select(c => c.Text)), Tags = result.Tags.Select(t => t.Name).ToArray() }; log.Info("(Fun2) Finished image analysis."); return(asciiArtRequest.AsQueueItem()); }