From 51638df72039c58c019c82268b546cb819c3b8ea Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Sat, 16 Jan 2021 12:39:54 -0800 Subject: [PATCH 1/6] Replace supported image extension list with image detection via MagickImageInfo. --- .../QuickLook.Plugin.ImageViewer/Plugin.cs | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs index a653a6136..1c1f620a9 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs @@ -19,6 +19,7 @@ using System.Collections.Generic; using System.IO; using System.Windows; +using ImageMagick; using QuickLook.Common.Helpers; using QuickLook.Common.Plugin; using QuickLook.Plugin.ImageViewer.AnimatedImage.Providers; @@ -27,15 +28,6 @@ namespace QuickLook.Plugin.ImageViewer { public class Plugin : IViewer { - private static readonly HashSet Formats = new HashSet(new[] - { - ".apng", ".ari", ".arw", ".avif", ".bay", ".bmp", ".cap", ".cr2", ".cr3", ".crw", ".dcr", ".dcs", ".dng", - ".drf", ".eip", ".emf", ".erf", ".exr", ".fff", ".gif", ".hdr", ".heic", ".heif", ".ico", ".icon", ".iiq", - ".jfif", ".jpeg", ".jpg", ".k25", ".kdc", ".mdc", ".mef", ".mos", ".mrw", ".nef", ".nrw", ".obm", ".orf", - ".pbm", ".pef", ".pgm", ".png", ".pnm", ".ppm", ".psd", ".ptx", ".pxn", ".r3d", ".raf", ".raw", ".rw2", - ".rwl", ".rwz", ".sr2", ".srf", ".srw", ".svg", ".tga", ".tif", ".tiff", ".wdp", ".webp", ".wmf", ".x3f" - }); - private ImagePanel _ip; private MetaProvider _meta; @@ -57,9 +49,21 @@ public void Init() typeof(ImageMagickProvider))); } + private bool IsKnownImageFormat(string path) + { + try + { + return new MagickImageInfo(path).Format != MagickFormat.Unknown; + } + catch + { + return false; + } + } + public bool CanHandle(string path) { - return !Directory.Exists(path) && Formats.Contains(Path.GetExtension(path.ToLower())); + return !Directory.Exists(path) && IsKnownImageFormat(path); } public void Prepare(string path, ContextObject context) From 3ffad542793881ebdcab51268832d5f4cd6f93ec Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Sun, 17 Jan 2021 13:20:25 -0800 Subject: [PATCH 2/6] Change ImageViewer priority to -4. Change VideoViewer priority to -3 and detect audio/video via MediaInfo instead of file extensions. --- .../QuickLook.Plugin.ImageViewer/Plugin.cs | 2 +- .../QuickLook.Plugin.VideoViewer/Plugin.cs | 134 +++++++++++------- 2 files changed, 80 insertions(+), 56 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs index 1c1f620a9..343f2770f 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs @@ -31,7 +31,7 @@ public class Plugin : IViewer private ImagePanel _ip; private MetaProvider _meta; - public int Priority => 0; + public int Priority => -4; public void Init() { diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs index 4794940f4..517b86aa3 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs @@ -27,86 +27,112 @@ namespace QuickLook.Plugin.VideoViewer { public class Plugin : IViewer { - private static readonly HashSet Formats = new HashSet(new[] - { - // video - ".3g2", ".3gp", ".3gp2", ".3gpp", ".amv", ".asf", ".avi", ".flv", ".m4v", ".mkv", ".mov", ".mp4", ".mp4v", - ".mpeg", ".mpg", ".mts", ".m2ts", ".mxf", ".ogv", ".qt", ".tp", ".ts", ".vob", ".webm", ".wmv", - // audio - ".3gp", ".aa", ".aac", ".aax", ".act", ".aif", ".aiff", ".amr", ".ape", ".au", ".awb", ".dct", ".dss", ".dvf", - ".flac", ".gsm", ".iklax", ".ivs", ".m4a", ".m4b", ".m4p", ".m4r", ".mka", ".mmf", ".mp3", ".mpc", ".msv", - ".ogg", ".oga", ".mogg", ".opus", ".ra", ".raw", ".rm", ".tta", ".vox", ".wav", ".webm", ".wma", ".wv" - }); - private ContextObject _context; private MediaInfo.MediaInfo _mediaInfo; private ViewerPanel _vp; - public int Priority => -10; // make it lower than TextViewer + public int Priority => -3; public void Init() { QLVRegistry.Register(); } - public bool CanHandle(string path) - { - return !Directory.Exists(path) && Formats.Contains(Path.GetExtension(path)?.ToLower()); - } - - public void Prepare(string path, ContextObject context) + private MediaInfo.MediaInfo MediaInfoObj() { - _context = context; - - try + if (_mediaInfo == null) { _mediaInfo = new MediaInfo.MediaInfo(Path.Combine( Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Environment.Is64BitProcess ? "MediaInfo-x64\\" : "MediaInfo-x86\\")); - _mediaInfo.Option("Cover_Data", "base64"); - - _mediaInfo.Open(path); } - catch (Exception) + return _mediaInfo; + } + + private void ResetMediaInfoObj() + { + _mediaInfo?.Dispose(); + _mediaInfo = null; + } + + public bool CanHandle(string path) + { + if (!Directory.Exists(path)) { - _mediaInfo?.Dispose(); - _mediaInfo = null; + try + { + var mediaInfo = MediaInfoObj(); + mediaInfo.Open(path); + string videoCodec = mediaInfo.Get(StreamKind.Video, 0, "Format"); + string audioCodec = mediaInfo.Get(StreamKind.Audio, 0, "Format"); + ResetMediaInfoObj(); + if (videoCodec == "Unable to load MediaInfo library") + { + return false; + } + if (!string.IsNullOrWhiteSpace(videoCodec) || !string.IsNullOrWhiteSpace(audioCodec)) + { + return true; + } + } + catch (Exception) + { + ResetMediaInfoObj(); + } } - context.TitlebarOverlap = true; + return false; + } - if (_mediaInfo == null || - !string.IsNullOrWhiteSpace(_mediaInfo.Get(StreamKind.General, 0, "VideoCount"))) // video + public void Prepare(string path, ContextObject context) + { + _context = context; + + try { - int.TryParse(_mediaInfo?.Get(StreamKind.Video, 0, "Width"), out var width); - int.TryParse(_mediaInfo?.Get(StreamKind.Video, 0, "Height"), out var height); - double.TryParse(_mediaInfo?.Get(StreamKind.Video, 0, "Rotation"), out var rotation); + var mediaInfo = MediaInfoObj(); + mediaInfo.Option("Cover_Data", "base64"); - var windowSize = new Size + mediaInfo.Open(path); + string videoCodec = mediaInfo.Get(StreamKind.Video, 0, "Format"); + if (!string.IsNullOrWhiteSpace(videoCodec)) // video { - Width = Math.Max(100, width == 0 ? 1366 : width), - Height = Math.Max(100, height == 0 ? 768 : height) - }; - - if (rotation % 180 != 0) - windowSize = new Size(windowSize.Height, windowSize.Width); - - context.SetPreferredSizeFit(windowSize, 0.8); + int.TryParse(mediaInfo?.Get(StreamKind.Video, 0, "Width"), out var width); + int.TryParse(mediaInfo?.Get(StreamKind.Video, 0, "Height"), out var height); + double.TryParse(_mediaInfo?.Get(StreamKind.Video, 0, "Rotation"), out var rotation); + + var windowSize = new Size + { + Width = Math.Max(100, width == 0 ? 1366 : width), + Height = Math.Max(100, height == 0 ? 768 : height) + }; + + if (rotation % 180 != 0) + windowSize = new Size(windowSize.Height, windowSize.Width); + + context.SetPreferredSizeFit(windowSize, 0.8); + + context.TitlebarAutoHide = true; + context.Theme = Themes.Dark; + context.TitlebarBlurVisibility = true; + } + else // audio + { + context.PreferredSize = new Size(500, 300); - context.TitlebarAutoHide = true; - context.Theme = Themes.Dark; - context.TitlebarBlurVisibility = true; + context.CanResize = false; + context.TitlebarAutoHide = false; + context.TitlebarBlurVisibility = false; + context.TitlebarColourVisibility = false; + } } - else // audio + catch (Exception) { - context.PreferredSize = new Size(500, 300); - - context.CanResize = false; - context.TitlebarAutoHide = false; - context.TitlebarBlurVisibility = false; - context.TitlebarColourVisibility = false; + ResetMediaInfoObj(); } + + context.TitlebarOverlap = true; } public void View(string path, ContextObject context) @@ -125,9 +151,7 @@ public void Cleanup() _vp?.Dispose(); _vp = null; - _mediaInfo?.Dispose(); - _mediaInfo = null; - + ResetMediaInfoObj(); _context = null; } } From 5a009bb780ad4c0336d784f011476c7c14457fd5 Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Mon, 18 Jan 2021 20:44:59 -0800 Subject: [PATCH 3/6] Make mediaInfo a class static and initialize once. Add some notes about MediaInfo Open and Close. --- .../QuickLook.Plugin.VideoViewer/Plugin.cs | 67 +++++++------------ 1 file changed, 26 insertions(+), 41 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs index 517b86aa3..daa2534a4 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs @@ -27,33 +27,23 @@ namespace QuickLook.Plugin.VideoViewer { public class Plugin : IViewer { - private ContextObject _context; - private MediaInfo.MediaInfo _mediaInfo; + private static MediaInfo.MediaInfo _mediaInfo; private ViewerPanel _vp; public int Priority => -3; - public void Init() + static Plugin() { - QLVRegistry.Register(); + _mediaInfo = new MediaInfo.MediaInfo(Path.Combine( + Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), + Environment.Is64BitProcess ? "MediaInfo-x64\\" : "MediaInfo-x86\\")); + _mediaInfo.Option("Cover_Data", "base64"); } - private MediaInfo.MediaInfo MediaInfoObj() - { - if (_mediaInfo == null) - { - _mediaInfo = new MediaInfo.MediaInfo(Path.Combine( - Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), - Environment.Is64BitProcess ? "MediaInfo-x64\\" : "MediaInfo-x86\\")); - } - return _mediaInfo; - } - - private void ResetMediaInfoObj() + public void Init() { - _mediaInfo?.Dispose(); - _mediaInfo = null; + QLVRegistry.Register(); } public bool CanHandle(string path) @@ -62,12 +52,16 @@ public bool CanHandle(string path) { try { - var mediaInfo = MediaInfoObj(); - mediaInfo.Open(path); - string videoCodec = mediaInfo.Get(StreamKind.Video, 0, "Format"); - string audioCodec = mediaInfo.Get(StreamKind.Audio, 0, "Format"); - ResetMediaInfoObj(); - if (videoCodec == "Unable to load MediaInfo library") + _mediaInfo.Open(path); + string videoCodec = _mediaInfo.Get(StreamKind.Video, 0, "Format"); + string audioCodec = _mediaInfo.Get(StreamKind.Audio, 0, "Format"); + // Note MediaInfo.Close seems to close the dll and you have to re-create the MediaInfo + // object like in the static class constructor above. Any call to Get methods etc. + // will result in a "Unable to load MediaInfo library" error. + // Ref: https://github.com/MediaArea/MediaInfoLib/blob/master/Source/MediaInfoDLL/MediaInfoDLL.cs + // Pretty sure it doesn't leak when opening another file as the c++ code calls Close on Open + // Ref: https://github.com/MediaArea/MediaInfoLib/blob/master/Source/MediaInfo/MediaInfo_Internal.cpp + if (videoCodec == "Unable to load MediaInfo library") // should not happen { return false; } @@ -76,9 +70,9 @@ public bool CanHandle(string path) return true; } } - catch (Exception) + catch { - ResetMediaInfoObj(); + // return false; } } @@ -87,20 +81,15 @@ public bool CanHandle(string path) public void Prepare(string path, ContextObject context) { - _context = context; - try { - var mediaInfo = MediaInfoObj(); - mediaInfo.Option("Cover_Data", "base64"); + string videoCodec = _mediaInfo.Get(StreamKind.Video, 0, "Format"); - mediaInfo.Open(path); - string videoCodec = mediaInfo.Get(StreamKind.Video, 0, "Format"); - if (!string.IsNullOrWhiteSpace(videoCodec)) // video + if (!string.IsNullOrWhiteSpace(videoCodec)) // video { - int.TryParse(mediaInfo?.Get(StreamKind.Video, 0, "Width"), out var width); - int.TryParse(mediaInfo?.Get(StreamKind.Video, 0, "Height"), out var height); - double.TryParse(_mediaInfo?.Get(StreamKind.Video, 0, "Rotation"), out var rotation); + int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Width"), out var width); + int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Height"), out var height); + double.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Rotation"), out var rotation); var windowSize = new Size { @@ -127,9 +116,8 @@ public void Prepare(string path, ContextObject context) context.TitlebarColourVisibility = false; } } - catch (Exception) + catch { - ResetMediaInfoObj(); } context.TitlebarOverlap = true; @@ -150,9 +138,6 @@ public void Cleanup() { _vp?.Dispose(); _vp = null; - - ResetMediaInfoObj(); - _context = null; } } } From c1f2d42d2327cc5e25ebefe7aad41fcdd6c7130d Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Tue, 19 Jan 2021 19:34:49 -0800 Subject: [PATCH 4/6] Remove try/catch from Prepare and let it be handled in caller. If there was an exception due to MediaInfo it would have already occurred in CanHandle. --- .../QuickLook.Plugin.VideoViewer/Plugin.cs | 51 ++++++++----------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs index daa2534a4..a5d289a5c 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/Plugin.cs @@ -81,43 +81,36 @@ public bool CanHandle(string path) public void Prepare(string path, ContextObject context) { - try + string videoCodec = _mediaInfo.Get(StreamKind.Video, 0, "Format"); + if (!string.IsNullOrWhiteSpace(videoCodec)) // video { - string videoCodec = _mediaInfo.Get(StreamKind.Video, 0, "Format"); + int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Width"), out var width); + int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Height"), out var height); + double.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Rotation"), out var rotation); - if (!string.IsNullOrWhiteSpace(videoCodec)) // video + var windowSize = new Size { - int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Width"), out var width); - int.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Height"), out var height); - double.TryParse(_mediaInfo.Get(StreamKind.Video, 0, "Rotation"), out var rotation); + Width = Math.Max(100, width == 0 ? 1366 : width), + Height = Math.Max(100, height == 0 ? 768 : height) + }; - var windowSize = new Size - { - Width = Math.Max(100, width == 0 ? 1366 : width), - Height = Math.Max(100, height == 0 ? 768 : height) - }; - - if (rotation % 180 != 0) - windowSize = new Size(windowSize.Height, windowSize.Width); + if (rotation % 180 != 0) + windowSize = new Size(windowSize.Height, windowSize.Width); - context.SetPreferredSizeFit(windowSize, 0.8); + context.SetPreferredSizeFit(windowSize, 0.8); - context.TitlebarAutoHide = true; - context.Theme = Themes.Dark; - context.TitlebarBlurVisibility = true; - } - else // audio - { - context.PreferredSize = new Size(500, 300); - - context.CanResize = false; - context.TitlebarAutoHide = false; - context.TitlebarBlurVisibility = false; - context.TitlebarColourVisibility = false; - } + context.TitlebarAutoHide = true; + context.Theme = Themes.Dark; + context.TitlebarBlurVisibility = true; } - catch + else // audio { + context.PreferredSize = new Size(500, 300); + + context.CanResize = false; + context.TitlebarAutoHide = false; + context.TitlebarBlurVisibility = false; + context.TitlebarColourVisibility = false; } context.TitlebarOverlap = true; From 6a968782e483a0c1c1fd84433b68dbf0fee4e4ec Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Wed, 7 Apr 2021 19:42:15 -0700 Subject: [PATCH 5/6] Upgrade ImageMagick to latest --- .../AnimatedImage/Providers/ImageMagickProvider.cs | 2 +- .../QuickLook.Plugin.ImageViewer.csproj | 12 ++++++------ .../QuickLook.Plugin.ImageViewer/packages.config | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs index 41a7f4b7c..c748a2c48 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/AnimatedImage/Providers/ImageMagickProvider.cs @@ -23,7 +23,7 @@ using System.Windows.Media.Animation; using System.Windows.Media.Imaging; using ImageMagick; -using ImageMagick.Formats.Dng; +using ImageMagick.Formats; using QuickLook.Common.Helpers; namespace QuickLook.Plugin.ImageViewer.AnimatedImage.Providers diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj index ade271780..4cd200ddb 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj @@ -62,14 +62,14 @@ .\LibAPNG.dll - - ..\..\packages\Magick.NET-Q8-AnyCPU.7.20.0.1\lib\net40\Magick.NET-Q8-AnyCPU.dll + + ..\..\packages\Magick.NET-Q8-AnyCPU.7.23.3\lib\net40\Magick.NET-Q8-AnyCPU.dll - - ..\..\packages\Magick.NET.Core.3.0.0\lib\net40\Magick.NET.Core.dll + + ..\..\packages\Magick.NET.Core.6.1.3\lib\net40\Magick.NET.Core.dll - - ..\..\packages\Magick.NET.SystemWindowsMedia.1.0.2\lib\net40\Magick.NET.SystemWindowsMedia.dll + + ..\..\packages\Magick.NET.SystemWindowsMedia.3.0.8\lib\net40\Magick.NET.SystemWindowsMedia.dll diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config index 26128e328..db9594100 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config @@ -1,7 +1,7 @@  - - - + + + \ No newline at end of file From 7c5e0dd2e9c8518a25a5796b943363cda6e5b007 Mon Sep 17 00:00:00 2001 From: Frank Becker Date: Tue, 4 May 2021 20:27:33 -0700 Subject: [PATCH 6/6] Only check extension for well known image and animated image types. For other image formats, let ImageMagick try to detect by file content. Upgrade to latest Magick.NET --- .../QuickLook.Plugin.ImageViewer/Plugin.cs | 17 +++++++++++++++-- .../QuickLook.Plugin.ImageViewer.csproj | 12 ++++++------ .../packages.config | 6 +++--- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs index b2dfd764a..13049d248 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/Plugin.cs @@ -28,6 +28,12 @@ namespace QuickLook.Plugin.ImageViewer { public class Plugin : IViewer { + private static readonly HashSet WellKnownImageExtensions = new HashSet(new[] + { + ".apng", ".bmp", ".gif", ".ico", ".icon", ".jfif", ".jpeg", ".jpg", ".png", ".psd", + ".svg", ".tga", ".tif", ".tiff", ".webp", ".wmf", + }); + private ImagePanel _ip; private MetaProvider _meta; @@ -49,7 +55,12 @@ public void Init() typeof(ImageMagickProvider))); } - private bool IsKnownImageFormat(string path) + private bool IsWellKnownImageExtension(string path) + { + return WellKnownImageExtensions.Contains(Path.GetExtension(path.ToLower())); + } + + private bool IsImageMagickSupported(string path) { try { @@ -63,7 +74,9 @@ private bool IsKnownImageFormat(string path) public bool CanHandle(string path) { - return !Directory.Exists(path) && IsKnownImageFormat(path); + // Only check extension for well known image and animated image types. + // For other image formats, let ImageMagick try to detect by file content. + return !Directory.Exists(path) && (IsWellKnownImageExtension(path) || IsImageMagickSupported(path)); } public void Prepare(string path, ContextObject context) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj index 4cd200ddb..6bfbeac65 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/QuickLook.Plugin.ImageViewer.csproj @@ -62,14 +62,14 @@ .\LibAPNG.dll - - ..\..\packages\Magick.NET-Q8-AnyCPU.7.23.3\lib\net40\Magick.NET-Q8-AnyCPU.dll + + ..\..\packages\Magick.NET-Q8-AnyCPU.7.23.4\lib\net40\Magick.NET-Q8-AnyCPU.dll - - ..\..\packages\Magick.NET.Core.6.1.3\lib\net40\Magick.NET.Core.dll + + ..\..\packages\Magick.NET.Core.6.2.0\lib\net40\Magick.NET.Core.dll - - ..\..\packages\Magick.NET.SystemWindowsMedia.3.0.8\lib\net40\Magick.NET.SystemWindowsMedia.dll + + ..\..\packages\Magick.NET.SystemWindowsMedia.3.0.9\lib\net40\Magick.NET.SystemWindowsMedia.dll diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config index db9594100..46bf5d630 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/packages.config @@ -1,7 +1,7 @@  - - - + + + \ No newline at end of file