diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/APNGAnimationProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/APngProvider.cs similarity index 96% rename from QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/APNGAnimationProvider.cs rename to QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/APngProvider.cs index 3ebdebe..bf488c0 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/APNGAnimationProvider.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/APngProvider.cs @@ -27,21 +27,21 @@ using System.Windows.Media.Imaging; using LibAPNG; using QuickLook.Common.ExtensionMethods; -namespace QuickLook.Plugin.ImageViewer.AnimatedImage +namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers { - internal class APngAnimationProvider : AnimationProvider + internal class APngProvider : AnimationProvider { private readonly Frame _baseFrame; private readonly List _frames; private readonly List _renderedFrames; private int _lastEffectivePreviousPreviousFrameIndex; - private NativeImageProvider _nativeImageProvider; + private NativeProvider _nativeImageProvider; - public APngAnimationProvider(string path, MetaProvider meta) : base(path, meta) + public APngProvider(string path, MetaProvider meta) : base(path, meta) { if (!IsAnimatedPng(path)) { - _nativeImageProvider = new NativeImageProvider(path, meta); + _nativeImageProvider = new NativeProvider(path, meta); Animator = _nativeImageProvider.Animator; return; } diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/DcrawProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/DcrawProvider.cs new file mode 100644 index 0000000..0a7c53b --- /dev/null +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/DcrawProvider.cs @@ -0,0 +1,29 @@ +// Copyright © 2020 Paddy Xu +// +// This file is part of QuickLook program. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +using System; + +namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers +{ + internal class DcrawProvider : NativeProvider + { + public DcrawProvider(string path, MetaProvider meta) : base(path, meta) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/GifAnimationProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/GifProvider.cs similarity index 93% rename from QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/GifAnimationProvider.cs rename to QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/GifProvider.cs index 56ae412..5826554 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/GifAnimationProvider.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/GifProvider.cs @@ -24,15 +24,15 @@ using QuickLook.Common.ExtensionMethods; using QuickLook.Common.Helpers; using Size = System.Windows.Size; -namespace QuickLook.Plugin.ImageViewer.AnimatedImage +namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers { - internal class GifAnimationProvider : AnimationProvider + internal class GifProvider : AnimationProvider { private Bitmap _fileHandle; private BitmapSource _frame; private bool _isPlaying; - public GifAnimationProvider(string path, MetaProvider meta) : base(path, meta) + public GifProvider(string path, MetaProvider meta) : base(path, meta) { _fileHandle = (Bitmap) Image.FromFile(path); diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/ImageMagickProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs similarity index 89% rename from QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/ImageMagickProvider.cs rename to QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs index c1d61f0..06e1cae 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/ImageMagickProvider.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs @@ -23,9 +23,10 @@ using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using ImageMagick; +using ImageMagick.Formats.Dng; using QuickLook.Common.Helpers; -namespace QuickLook.Plugin.ImageViewer.AnimatedImage +namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers { internal class ImageMagickProvider : AnimationProvider { @@ -80,9 +81,19 @@ namespace QuickLook.Plugin.ImageViewer.AnimatedImage return new Task(() => { + var settings = new MagickReadSettings + { + Defines = new DngReadDefines + { + OutputColor = DngOutputColor.SRGB, + UseCameraWhitebalance = true, + DisableAutoBrightness = false + } + }; + try { - using (var mi = new MagickImage(Path)) + using (var mi = new MagickImage(Path, settings)) { var profile = mi.GetColorProfile(); if (profile?.Description != null && !profile.Description.Contains("sRGB")) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/NativeImageProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/NativeProvider.cs similarity index 97% rename from QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/NativeImageProvider.cs rename to QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/NativeProvider.cs index 4d1cba2..df9d455 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/NativeImageProvider.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/NativeProvider.cs @@ -23,11 +23,11 @@ using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using QuickLook.Common.Helpers; -namespace QuickLook.Plugin.ImageViewer.AnimatedImage +namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers { - internal class NativeImageProvider : AnimationProvider + internal class NativeProvider : AnimationProvider { - public NativeImageProvider(string path, MetaProvider meta) : base(path, meta) + public NativeProvider(string path, MetaProvider meta) : base(path, meta) { Animator = new Int32AnimationUsingKeyFrames(); Animator.KeyFrames.Add(new DiscreteInt32KeyFrame(0, diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs index 7e1a375..ca86c9d 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs @@ -22,7 +22,7 @@ using System.Linq; using System.Windows; using QuickLook.Common.Helpers; using QuickLook.Common.Plugin; -using QuickLook.Plugin.ImageViewer.AnimatedImage; +using QuickLook.Plugin.ImageViewer.AnimatedImage.Providers; namespace QuickLook.Plugin.ImageViewer { @@ -49,13 +49,13 @@ namespace QuickLook.Plugin.ImageViewer { AnimatedImage.AnimatedImage.Providers.Add( new KeyValuePair(new[] {".apng", ".png"}, - typeof(APngAnimationProvider))); + typeof(APngProvider))); AnimatedImage.AnimatedImage.Providers.Add( new KeyValuePair(new[] {".gif"}, - typeof(GifAnimationProvider))); + typeof(GifProvider))); AnimatedImage.AnimatedImage.Providers.Add( new KeyValuePair(new[] {".bmp", ".jpg", ".jpeg", ".tif", ".tiff"}, - typeof(NativeImageProvider))); + typeof(NativeProvider))); AnimatedImage.AnimatedImage.Providers.Add( new KeyValuePair(new[] {"*"}, typeof(ImageMagickProvider))); diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj index 5fbdbcf..b7e1429 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj @@ -62,8 +62,8 @@ .\LibAPNG.dll - - ..\..\packages\Magick.NET-Q8-AnyCPU.7.16.1\lib\net40\Magick.NET-Q8-AnyCPU.dll + + ..\..\packages\Magick.NET-Q8-AnyCPU.7.17.0\lib\net40\Magick.NET-Q8-AnyCPU.dll @@ -82,12 +82,13 @@ Properties\GitVersion.cs - - + + + - - + + ImagePanel.xaml @@ -123,5 +124,6 @@ PreserveNewest + \ No newline at end of file diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config index 5047e76..585e44a 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file