diff --git a/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj b/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
index 9f0e3a004..221346b68 100644
--- a/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
+++ b/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
@@ -18,11 +18,11 @@
+
+
-
-
diff --git a/Jellyfin.Drawing.Skia/SkiaEncoder.cs b/Jellyfin.Drawing.Skia/SkiaEncoder.cs
index 1d7307863..d2da0cf17 100644
--- a/Jellyfin.Drawing.Skia/SkiaEncoder.cs
+++ b/Jellyfin.Drawing.Skia/SkiaEncoder.cs
@@ -5,7 +5,7 @@ using System.Globalization;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
-using Blurhash.Core;
+using BlurHashSharp.SkiaSharp;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Extensions;
@@ -19,7 +19,7 @@ namespace Jellyfin.Drawing.Skia
///
/// Image encoder that uses to manipulate images.
///
- public class SkiaEncoder : CoreEncoder, IImageEncoder
+ public class SkiaEncoder : IImageEncoder
{
private static readonly HashSet _transparentImageTypes
= new HashSet(StringComparer.OrdinalIgnoreCase) { ".png", ".gif", ".webp" };
@@ -250,29 +250,7 @@ namespace Jellyfin.Drawing.Skia
throw new FileNotFoundException("File not found", path);
}
- using (var bitmap = GetBitmap(path, false, false, null))
- {
- if (bitmap == null)
- {
- throw new ArgumentOutOfRangeException($"Skia unable to read image {path}");
- }
-
- var width = bitmap.Width;
- var height = bitmap.Height;
- var pixels = new Pixel[width, height];
- Parallel.ForEach(Enumerable.Range(0, height), y =>
- {
- for (var x = 0; x < width; x++)
- {
- var color = bitmap.GetPixel(x, y);
- pixels[x, y].Red = MathUtils.SRgbToLinear(color.Red);
- pixels[x, y].Green = MathUtils.SRgbToLinear(color.Green);
- pixels[x, y].Blue = MathUtils.SRgbToLinear(color.Blue);
- }
- });
-
- return CoreEncode(pixels, 4, 4);
- }
+ return BlurHashSharp.SkiaSharp.BlurHashEncoder.Encode(4, 4, path);
}
private static bool HasDiacritics(string text)