예제 #1
0
        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());
        }
예제 #2
0
        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());
        }