@ -28,6 +28,9 @@ namespace Jellyfin.Drawing.Skia
/// <summary>
/// Initializes a new instance of the <see cref="SkiaEncoder"/> class.
/// </summary>
/// <param name="logger">The application logger.</param>
/// <param name="appPaths">The application paths.</param>
/// <param name="localizationManager">The application localization manager.</param>
public SkiaEncoder (
ILogger < SkiaEncoder > logger ,
IApplicationPaths appPaths ,
@ -80,7 +83,7 @@ namespace Jellyfin.Drawing.Skia
= > new HashSet < ImageFormat > ( ) { ImageFormat . Webp , ImageFormat . Jpg , ImageFormat . Png } ;
/// <summary>
/// Test to determine if the native lib is available
/// Test to determine if the native lib is available .
/// </summary>
public static void TestSkia ( )
{
@ -288,6 +291,14 @@ namespace Jellyfin.Drawing.Skia
}
}
/// <summary>
/// Decode an image.
/// </summary>
/// <param name="path">The filepath of the image to decode.</param>
/// <param name="forceCleanBitmap">Whether to force clean the bitmap.</param>
/// <param name="orientation">The orientation of the image.</param>
/// <param name="origin">The detected origin of the image.</param>
/// <returns>The resulting bitmap of the image.</returns>
internal SKBitmap Decode ( string path , bool forceCleanBitmap , ImageOrientation ? orientation , out SKEncodedOrigin origin )
{
if ( ! File . Exists ( path ) )
@ -377,7 +388,7 @@ namespace Jellyfin.Drawing.Skia
private SKBitmap OrientImage ( SKBitmap bitmap , SKEncodedOrigin origin )
{
// var transformations = {
// var transformations = {
// 2: { rotate: 0, flip: true},
// 3: { rotate: 180, flip: false},
// 4: { rotate: 180, flip: true},
@ -385,7 +396,7 @@ namespace Jellyfin.Drawing.Skia
// 6: { rotate: 90, flip: false},
// 7: { rotate: 270, flip: true},
// 8: { rotate: 270, flip: false},
// }
// }
switch ( origin )
{
@ -576,7 +587,7 @@ namespace Jellyfin.Drawing.Skia
}
// create bitmap to use for canvas drawing used to draw into bitmap
using ( var saveBitmap = new SKBitmap ( width , height ) ) // , bitmap.ColorType, bitmap.AlphaType))
using ( var saveBitmap = new SKBitmap ( width , height ) ) // , bitmap.ColorType, bitmap.AlphaType))
using ( var canvas = new SKCanvas ( saveBitmap ) )
{
// set background color if present
@ -629,6 +640,7 @@ namespace Jellyfin.Drawing.Skia
}
}
}
return outputPath ;
}