diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-18 16:40:15 -0400 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-03-18 16:40:15 -0400 |
| commit | bd094311f080106c1418a3db95e4a908c1028d54 (patch) | |
| tree | 75e46aff3c427a34dd0bf971a13acbac384978fb /MediaBrowser.Controller/Drawing/ImageManager.cs | |
| parent | cf61ac0264883e53f024088a88148b87cbbf89a7 (diff) | |
updated servicestack to 3.9.40
Diffstat (limited to 'MediaBrowser.Controller/Drawing/ImageManager.cs')
| -rw-r--r-- | MediaBrowser.Controller/Drawing/ImageManager.cs | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Drawing/ImageManager.cs b/MediaBrowser.Controller/Drawing/ImageManager.cs index 6bae3510a..d78ff819b 100644 --- a/MediaBrowser.Controller/Drawing/ImageManager.cs +++ b/MediaBrowser.Controller/Drawing/ImageManager.cs @@ -119,7 +119,7 @@ namespace MediaBrowser.Controller.Drawing { try { - originalImagePath = GetCroppedImage(originalImagePath, dateModified); + originalImagePath = await GetCroppedImage(originalImagePath, dateModified).ConfigureAwait(false); } catch (Exception ex) { @@ -433,7 +433,7 @@ namespace MediaBrowser.Controller.Drawing /// <param name="originalImagePath">The original image path.</param> /// <param name="dateModified">The date modified.</param> /// <returns>System.String.</returns> - private string GetCroppedImage(string originalImagePath, DateTime dateModified) + private async Task<string> GetCroppedImage(string originalImagePath, DateTime dateModified) { var name = originalImagePath; name += "datemodified=" + dateModified.Ticks; @@ -450,10 +450,7 @@ namespace MediaBrowser.Controller.Drawing using (var croppedImage = originalImage.CropWhitespace()) { - using (var cacheFileStream = new FileStream(croppedImagePath, FileMode.Create)) - { - croppedImage.Save(outputFormat, cacheFileStream, 100); - } + await SaveImageToFile(croppedImage, outputFormat, croppedImagePath).ConfigureAwait(false); } } } @@ -462,6 +459,21 @@ namespace MediaBrowser.Controller.Drawing return croppedImagePath; } + private async Task SaveImageToFile(Image image, ImageFormat outputFormat, string file) + { + using (var memoryStream = new MemoryStream()) + { + image.Save(outputFormat, memoryStream, 100); + + memoryStream.Position = 0; + + using (var cacheFileStream = new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous)) + { + await memoryStream.CopyToAsync(cacheFileStream).ConfigureAwait(false); + } + } + } + /// <summary> /// Runs an image through the image enhancers, caches the result, and returns the cached path /// </summary> @@ -507,7 +519,7 @@ namespace MediaBrowser.Controller.Drawing using (var newImage = await ExecuteImageEnhancers(supportedEnhancers, originalImage, item, imageType, imageIndex).ConfigureAwait(false)) { //And then save it in the cache - newImage.Save(enhancedImagePath, ImageFormat.Png); + await SaveImageToFile(newImage, ImageFormat.Png, enhancedImagePath).ConfigureAwait(false); } } } |
