AcManager.Controls.CustomShowroom.CarTextureDialog.CarTextureDialogViewModel.LoadImageUsingMagickNet C# (CSharp) Method

LoadImageUsingMagickNet() private method

private LoadImageUsingMagickNet ( byte imageData ) : Task
imageData byte
return Task
            private static async Task<LoadedImage> LoadImageUsingMagickNet(byte[] imageData) {
                if (imageData == null || imageData.Length == 0) return null;

                try {
                    string formatDescription = null;
                    if (ImageUtils.IsMagickSupported) {
                        var data = imageData;
                        imageData = await Task.Run(() => ImageUtils.LoadAsConventionalBuffer(data, true, out formatDescription));
                    }

                    var image = new BitmapImage();
                    using (var stream = new MemoryStream(imageData) {
                        Position = 0
                    }) {
                        image.BeginInit();
                        image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
                        image.CacheOption = BitmapCacheOption.OnLoad;
                        image.UriSource = null;
                        image.StreamSource = stream;
                        image.EndInit();
                    }
                    image.Freeze();

                    return new LoadedImage {
                        Image = image,
                        FormatDescription = formatDescription
                    };
                } catch (Exception e) {
                    Logging.Warning(e);
                    return null;
                }
            }
        }