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); }
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); }