diff options
| author | cvium <clausvium@gmail.com> | 2023-10-25 23:05:47 +0200 |
|---|---|---|
| committer | cvium <clausvium@gmail.com> | 2023-10-25 23:05:47 +0200 |
| commit | 4be0f4267d41a4948815ff9a7ca055c1b16dffe1 (patch) | |
| tree | 52e20053a3d0b0d7c495c1d5def5a17888c78d25 | |
| parent | 42a7e4cf1a09404eae3f588ba5c6312633bfb2da (diff) | |
chore(deps): use Svg.Skia instead of the deprecated SkiaSharp.Svg
| -rw-r--r-- | Directory.Packages.props | 6 | ||||
| -rw-r--r-- | src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj | 4 | ||||
| -rw-r--r-- | src/Jellyfin.Drawing.Skia/SkiaEncoder.cs | 19 |
3 files changed, 13 insertions, 16 deletions
diff --git a/Directory.Packages.props b/Directory.Packages.props index 0619c4ef9..d4d2e8455 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -2,9 +2,7 @@ <PropertyGroup> <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> </PropertyGroup> - <!-- Run "dotnet list package (dash,dash)outdated" to see the latest versions of each package.--> - <ItemGroup Label="Package Dependencies"> <PackageVersion Include="AutoFixture.AutoMoq" Version="4.18.0" /> <PackageVersion Include="AutoFixture.Xunit2" Version="4.18.0" /> @@ -72,9 +70,9 @@ <PackageVersion Include="SkiaSharp" Version="2.88.5" /> <PackageVersion Include="SkiaSharp.HarfBuzz" Version="2.88.5" /> <PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.5" /> - <PackageVersion Include="SkiaSharp.Svg" Version="1.60.0" /> <PackageVersion Include="SmartAnalyzers.MultithreadingAnalyzer" Version="1.1.31" /> <PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.507" /> + <PackageVersion Include="Svg.Skia" Version="1.0.0.2" /> <PackageVersion Include="Swashbuckle.AspNetCore.ReDoc" Version="6.5.0" /> <PackageVersion Include="Swashbuckle.AspNetCore" Version="6.2.3" /> <PackageVersion Include="System.Globalization" Version="4.3.0" /> @@ -90,4 +88,4 @@ <PackageVersion Include="Xunit.SkippableFact" Version="1.4.13" /> <PackageVersion Include="xunit" Version="2.5.3" /> </ItemGroup> -</Project> +</Project>
\ No newline at end of file diff --git a/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj b/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj index c465c4ad0..09e103c6b 100644 --- a/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj +++ b/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj @@ -18,11 +18,11 @@ <ItemGroup> <PackageReference Include="BlurHashSharp" /> <PackageReference Include="BlurHashSharp.SkiaSharp" /> + <PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" /> <PackageReference Include="SkiaSharp" /> <PackageReference Include="SkiaSharp.NativeAssets.Linux" /> - <PackageReference Include="SkiaSharp.Svg" /> <PackageReference Include="SkiaSharp.HarfBuzz" /> - <PackageReference Include="HarfBuzzSharp.NativeAssets.Linux" /> + <PackageReference Include="Svg.Skia" /> </ItemGroup> <ItemGroup> diff --git a/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs b/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs index 554fbe941..21abe6e45 100644 --- a/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs +++ b/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs @@ -2,19 +2,15 @@ using System; using System.Collections.Generic; using System.Globalization; using System.IO; -using System.Linq; -using System.Security.Cryptography.Xml; using BlurHashSharp.SkiaSharp; using Jellyfin.Extensions; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Extensions; using MediaBrowser.Controller.Drawing; -using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.Drawing; using Microsoft.Extensions.Logging; using SkiaSharp; -using static System.Net.Mime.MediaTypeNames; -using SKSvg = SkiaSharp.Extended.Svg.SKSvg; +using Svg.Skia; namespace Jellyfin.Drawing.Skia; @@ -123,10 +119,16 @@ public class SkiaEncoder : IImageEncoder var extension = Path.GetExtension(path.AsSpan()); if (extension.Equals(".svg", StringComparison.OrdinalIgnoreCase)) { - var svg = new SKSvg(); + using var svg = new SKSvg(); try { using var picture = svg.Load(path); + if (picture is null) + { + _logger.LogError("Unable to determine image dimensions for {FilePath}", path); + return default; + } + return new ImageDimensions(Convert.ToInt32(picture.CullRect.Width), Convert.ToInt32(picture.CullRect.Height)); } catch (FormatException skiaColorException) @@ -289,10 +291,7 @@ public class SkiaEncoder : IImageEncoder private SKBitmap OrientImage(SKBitmap bitmap, SKEncodedOrigin origin) { - var needsFlip = origin == SKEncodedOrigin.LeftBottom - || origin == SKEncodedOrigin.LeftTop - || origin == SKEncodedOrigin.RightBottom - || origin == SKEncodedOrigin.RightTop; + var needsFlip = origin is SKEncodedOrigin.LeftBottom or SKEncodedOrigin.LeftTop or SKEncodedOrigin.RightBottom or SKEncodedOrigin.RightTop; var rotated = needsFlip ? new SKBitmap(bitmap.Height, bitmap.Width) : new SKBitmap(bitmap.Width, bitmap.Height); |
