Esempio n. 1
0
        public async Task <MemoryStream> RunAsync(string path)
        {
            MemoryStream memoryStream = new MemoryStream();

            using (Stream stream = await httpClient.GetStreamAsync(path))
            {
                await stream.CopyToAsync(memoryStream);
            }

            memoryStream.Position = 0;
            return(memoryStream);
        }
Esempio n. 2
0
        public async Task <MemoryStream> RunAsync(string path)
        {
            MemoryStream memoryStream = new MemoryStream();

            using (Stream stream = await httpClient.GetStreamAsync(path))
            {
                await stream.CopyToAsync(memoryStream);
            }
            memoryStream.Position = 0;
            string checksum = ImageCacheUtils.GetChecksum(memoryStream);

            Rectangle[] faceRects = imageCache.Get(path.ToString(), checksum);

            if (faceRects == null)
            {
                faceRects = await faceDetection.Detect(path);

                if (faceRects == null)
                {
                    memoryStream.Position = 0;
                    return(memoryStream);
                }

                imageCache.Add(path.ToString(), checksum, faceRects);
            }

            if (faceRects.Length > 0)
            {
                memoryStream.Position = 0;
                Bitmap bitmap = new Bitmap(memoryStream);

                bitmap = imageEffect.Apply(bitmap, faceRects);

                memoryStream.Position = 0;
                bitmap.Save(memoryStream, ImageFormat.Png);
            }
            memoryStream.Position = 0;
            return(memoryStream);
        }