<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Jellyfin.Drawing.Skia</name>
    </assembly>
    <members>
        <member name="T:Jellyfin.Drawing.Skia.PercentPlayedDrawer">
            <summary>
            Static helper class used to draw percentage-played indicators on images.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.PercentPlayedDrawer.Process(SkiaSharp.SKCanvas,MediaBrowser.Model.Drawing.ImageDimensions,System.Double)">
            <summary>
            Draw a percentage played indicator on a canvas.
            </summary>
            <param name="canvas">The canvas to draw the indicator on.</param>
            <param name="imageSize">The size of the image being drawn on.</param>
            <param name="percent">The percentage played to display with the indicator.</param>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.SkiaEncoder">
            <summary>
            Image encoder that uses <see cref="N:SkiaSharp"/> to manipulate images.
            </summary>
        </member>
        <member name="F:Jellyfin.Drawing.Skia.SkiaEncoder.UpscaleSamplingOptions">
            <summary>
            The default sampling options, equivalent to old high quality filter settings when upscaling.
            </summary>
        </member>
        <member name="F:Jellyfin.Drawing.Skia.SkiaEncoder.DefaultSamplingOptions">
            <summary>
            The sampling options, used for downscaling images, equivalent to old high quality filter settings when not upscaling.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.#ctor(Microsoft.Extensions.Logging.ILogger{Jellyfin.Drawing.Skia.SkiaEncoder},MediaBrowser.Common.Configuration.IApplicationPaths)">
            <summary>
            Initializes a new instance of the <see cref="T:Jellyfin.Drawing.Skia.SkiaEncoder"/> class.
            </summary>
            <param name="logger">The application logger.</param>
            <param name="appPaths">The application paths.</param>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.Name">
            <inheritdoc/>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.SupportsImageCollageCreation">
            <inheritdoc/>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.SupportsImageEncoding">
            <inheritdoc/>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.SupportedInputFormats">
            <inheritdoc/>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.SupportedOutputFormats">
            <inheritdoc/>
        </member>
        <member name="P:Jellyfin.Drawing.Skia.SkiaEncoder.DefaultTypeFace">
            <summary>
            Gets the default typeface to use.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.IsNativeLibAvailable">
            <summary>
            Check if the native lib is available.
            </summary>
            <returns>True if the native lib is available, otherwise false.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.InitializeTypefaces">
            <summary>
            Initialize the list of typefaces
            We have to statically build a list of typefaces because MatchCharacter only accepts a single character or code point
            But in reality a human-readable character (grapheme cluster) could be multiple code points. For example, 🚵🏻‍♀️ is a single emoji but 5 code points (U+1F6B5 + U+1F3FB + U+200D + U+2640 + U+FE0F).
            </summary>
            <returns>The list of typefaces.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.GetImageFormat(MediaBrowser.Model.Drawing.ImageFormat)">
            <summary>
            Convert a <see cref="T:MediaBrowser.Model.Drawing.ImageFormat"/> to a <see cref="T:SkiaSharp.SKEncodedImageFormat"/>.
            </summary>
            <param name="selectedFormat">The format to convert.</param>
            <returns>The converted format.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.GetImageSize(System.String)">
            <inheritdoc />
            <exception cref="T:System.IO.FileNotFoundException">The path is not valid.</exception>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.GetImageBlurHash(System.Int32,System.Int32,System.String)">
            <inheritdoc />
            <exception cref="T:System.ArgumentNullException">The path is null.</exception>
            <exception cref="T:System.IO.FileNotFoundException">The path is not valid.</exception>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.Decode(System.String,System.Boolean,System.Nullable{MediaBrowser.Model.Drawing.ImageOrientation},SkiaSharp.SKEncodedOrigin@)">
            <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>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.ResizeImage(SkiaSharp.SKBitmap,SkiaSharp.SKImageInfo,System.Boolean,System.Boolean)">
             <summary>
             Resizes an image on the CPU, by utilizing a surface and canvas.
            
             The convolutional matrix kernel used in this resize function gives a (light) sharpening effect.
             This technique is similar to effect that can be created using for example the [Convolution matrix filter in GIMP](https://docs.gimp.org/2.10/en/gimp-filter-convolution-matrix.html).
             </summary>
             <param name="source">The source bitmap.</param>
             <param name="targetInfo">This specifies the target size and other information required to create the surface.</param>
             <param name="isAntialias">This enables anti-aliasing on the SKPaint instance.</param>
             <param name="isDither">This enables dithering on the SKPaint instance.</param>
             <returns>The resized image.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.EncodeImage(System.String,System.DateTime,System.String,System.Boolean,System.Nullable{MediaBrowser.Model.Drawing.ImageOrientation},System.Int32,MediaBrowser.Controller.Drawing.ImageProcessingOptions,MediaBrowser.Model.Drawing.ImageFormat)">
            <inheritdoc/>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.CreateImageCollage(MediaBrowser.Controller.Drawing.ImageCollageOptions,System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.CreateSplashscreen(System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.CreateTrickplayTile(MediaBrowser.Controller.Drawing.ImageCollageOptions,System.Int32,System.Int32,System.Nullable{System.Int32})">
            <inheritdoc />
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaEncoder.GetFontForCharacter(System.String)">
            <summary>
            Return the typeface that contains the glyph for the given character.
            </summary>
            <param name="c">The text character.</param>
            <returns>The typeface contains the character.</returns>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.SkiaExtensions">
            <summary>
            The SkiaSharp extensions.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaExtensions.DrawBitmap(SkiaSharp.SKCanvas,SkiaSharp.SKBitmap,SkiaSharp.SKRect,SkiaSharp.SKSamplingOptions,SkiaSharp.SKPaint)">
            <summary>
            Draws an SKBitmap on the canvas with specified SkSamplingOptions.
            </summary>
            <param name="canvas">The SKCanvas to draw on.</param>
            <param name="bitmap">The SKBitmap to draw.</param>
            <param name="dest">The destination SKRect.</param>
            <param name="options">The SKSamplingOptions to use for rendering.</param>
            <param name="paint">Optional SKPaint to apply additional effects or styles.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaExtensions.DrawBitmap(SkiaSharp.SKCanvas,SkiaSharp.SKBitmap,System.Single,System.Single,SkiaSharp.SKSamplingOptions,SkiaSharp.SKPaint)">
            <summary>
            Draws an SKBitmap on the canvas at the specified coordinates with the given SkSamplingOptions.
            </summary>
            <param name="canvas">The SKCanvas to draw on.</param>
            <param name="bitmap">The SKBitmap to draw.</param>
            <param name="x">The x-coordinate where the bitmap will be drawn.</param>
            <param name="y">The y-coordinate where the bitmap will be drawn.</param>
            <param name="options">The SKSamplingOptions to use for rendering.</param>
            <param name="paint">Optional SKPaint to apply additional effects or styles.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaExtensions.DrawBitmap(SkiaSharp.SKCanvas,SkiaSharp.SKBitmap,SkiaSharp.SKRect,SkiaSharp.SKRect,SkiaSharp.SKSamplingOptions,SkiaSharp.SKPaint)">
            <summary>
            Draws an SKBitmap on the canvas using a specified source rectangle, destination rectangle,
            and optional paint, with the given SkSamplingOptions.
            </summary>
            <param name="canvas">The SKCanvas to draw on.</param>
            <param name="bitmap">The SKBitmap to draw.</param>
            <param name="source">
            The source SKRect defining the portion of the bitmap to draw.
            </param>
            <param name="dest">
            The destination SKRect defining the area on the canvas where the bitmap will be drawn.
            </param>
            <param name="options">The SKSamplingOptions to use for rendering.</param>
            <param name="paint">Optional SKPaint to apply additional effects or styles.</param>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.SkiaHelper">
            <summary>
            Class containing helper methods for working with SkiaSharp.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SkiaHelper.GetNextValidImage(Jellyfin.Drawing.Skia.SkiaEncoder,System.Collections.Generic.IReadOnlyList{System.String},System.Int32,System.Int32@)">
            <summary>
            Gets the next valid image as a bitmap.
            </summary>
            <param name="skiaEncoder">The current skia encoder.</param>
            <param name="paths">The list of image paths.</param>
            <param name="currentIndex">The current checked index.</param>
            <param name="newIndex">The new index.</param>
            <returns>A valid bitmap, or null if no bitmap exists after <c>currentIndex</c>.</returns>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.SplashscreenBuilder">
            <summary>
            Used to build the splashscreen.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SplashscreenBuilder.#ctor(Jellyfin.Drawing.Skia.SkiaEncoder,Microsoft.Extensions.Logging.ILogger)">
            <summary>
            Initializes a new instance of the <see cref="T:Jellyfin.Drawing.Skia.SplashscreenBuilder"/> class.
            </summary>
            <param name="skiaEncoder">The SkiaEncoder.</param>
            <param name="logger">The logger.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SplashscreenBuilder.GenerateSplash(System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.String},System.String)">
            <summary>
            Generate a splashscreen.
            </summary>
            <param name="posters">The poster paths.</param>
            <param name="backdrops">The landscape paths.</param>
            <param name="outputPath">The output path.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SplashscreenBuilder.GenerateCollage(System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.String})">
            <summary>
            Generates a collage of posters and landscape pictures.
            </summary>
            <param name="posters">The poster paths.</param>
            <param name="backdrops">The landscape paths.</param>
            <returns>The created collage as a bitmap.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.SplashscreenBuilder.Transform3D(SkiaSharp.SKBitmap)">
            <summary>
            Transform the collage in 3D space.
            </summary>
            <param name="input">The bitmap to transform.</param>
            <returns>The transformed image.</returns>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.StripCollageBuilder">
            <summary>
            Used to build collages of multiple images arranged in vertical strips.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.#ctor(Jellyfin.Drawing.Skia.SkiaEncoder)">
            <summary>
            Initializes a new instance of the <see cref="T:Jellyfin.Drawing.Skia.StripCollageBuilder"/> class.
            </summary>
            <param name="skiaEncoder">The encoder to use for building collages.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.IsRtlTextRegex">
            <remarks>
            Pattern:<br/>
            <code>\\p{IsArabic}|\\p{IsArmenian}|\\p{IsHebrew}|\\p{IsSyriac}|\\p{IsThaana}</code><br/>
            Explanation:<br/>
            <code>
            ○ Match a character in the set [\u0530-\u074F\u0780-\u07BF].<br/>
            </code>
            </remarks>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.GetEncodedFormat(System.String)">
            <summary>
            Check which format an image has been encoded with using its filename extension.
            </summary>
            <param name="outputPath">The path to the image to get the format for.</param>
            <returns>The image format.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.BuildSquareCollage(System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Int32,System.Int32)">
            <summary>
            Create a square collage.
            </summary>
            <param name="paths">The paths of the images to use in the collage.</param>
            <param name="outputPath">The path at which to place the resulting collage image.</param>
            <param name="width">The desired width of the collage.</param>
            <param name="height">The desired height of the collage.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.BuildThumbCollage(System.Collections.Generic.IReadOnlyList{System.String},System.String,System.Int32,System.Int32,System.String)">
            <summary>
            Create a thumb collage.
            </summary>
            <param name="paths">The paths of the images to use in the collage.</param>
            <param name="outputPath">The path at which to place the resulting image.</param>
            <param name="width">The desired width of the collage.</param>
            <param name="height">The desired height of the collage.</param>
            <param name="libraryName">The name of the library to draw on the collage.</param>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.MeasureAndDrawText(SkiaSharp.SKCanvas,System.Single,System.Single,System.String,SkiaSharp.SKPaint,SkiaSharp.SKFont,SkiaSharp.SKTextAlign)">
            <summary>
            Draw shaped text with given SKPaint.
            </summary>
            <param name="canvas">If not null, draw text to this canvas, otherwise only measure the text width.</param>
            <param name="x">x position of the canvas to draw text.</param>
            <param name="y">y position of the canvas to draw text.</param>
            <param name="text">The text to draw.</param>
            <param name="textPaint">The SKPaint to style the text.</param>
            <param name="textFont">The SKFont to style the text.</param>
            <param name="alignment">The alignment of the text. Default aligns to left.</param>
            <returns>The width of the text.</returns>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.StripCollageBuilder.DrawText(SkiaSharp.SKCanvas,System.Single,System.Single,System.String,SkiaSharp.SKPaint,SkiaSharp.SKFont,System.Boolean)">
            <summary>
            Draw shaped text with given SKPaint, search defined type faces to render as many texts as possible.
            </summary>
            <param name="canvas">If not null, draw text to this canvas, otherwise only measure the text width.</param>
            <param name="x">x position of the canvas to draw text.</param>
            <param name="y">y position of the canvas to draw text.</param>
            <param name="text">The text to draw.</param>
            <param name="textPaint">The SKPaint to style the text.</param>
            <param name="textFont">The SKFont to style the text.</param>
            <param name="isRtl">If true, render from right to left.</param>
            <returns>The width of the text.</returns>
        </member>
        <member name="T:Jellyfin.Drawing.Skia.UnplayedCountIndicator">
            <summary>
            Static helper class for drawing unplayed count indicators.
            </summary>
        </member>
        <member name="F:Jellyfin.Drawing.Skia.UnplayedCountIndicator.OffsetFromTopRightCorner">
            <summary>
            The x-offset used when drawing an unplayed count indicator.
            </summary>
        </member>
        <member name="M:Jellyfin.Drawing.Skia.UnplayedCountIndicator.DrawUnplayedCountIndicator(SkiaSharp.SKCanvas,MediaBrowser.Model.Drawing.ImageDimensions,System.Int32)">
            <summary>
            Draw an unplayed count indicator in the top right corner of a canvas.
            </summary>
            <param name="canvas">The canvas to draw the indicator on.</param>
            <param name="imageSize">
            The dimensions of the image to draw the indicator on. The width is used to determine the x-position of the
            indicator.
            </param>
            <param name="count">The number to draw in the indicator.</param>
        </member>
        <member name="T:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0">
            <summary>Custom <see cref="T:System.Text.RegularExpressions.Regex"/>-derived type for the IsRtlTextRegex method.</summary>
        </member>
        <member name="F:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.Instance">
            <summary>Cached, thread-safe singleton instance.</summary>
        </member>
        <member name="M:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.#ctor">
            <summary>Initializes the instance.</summary>
        </member>
        <member name="T:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.RunnerFactory">
            <summary>Provides a factory for creating <see cref="T:System.Text.RegularExpressions.RegexRunner"/> instances to be used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
        </member>
        <member name="M:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.RunnerFactory.CreateInstance">
            <summary>Creates an instance of a <see cref="T:System.Text.RegularExpressions.RegexRunner"/> used by methods on <see cref="T:System.Text.RegularExpressions.Regex"/>.</summary>
        </member>
        <member name="T:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.RunnerFactory.Runner">
            <summary>Provides the runner that contains the custom logic implementing the specified regular expression.</summary>
        </member>
        <member name="M:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.RunnerFactory.Runner.Scan(System.ReadOnlySpan{System.Char})">
            <summary>Scan the <paramref name="inputSpan"/> starting from base.runtextstart for the next match.</summary>
            <param name="inputSpan">The text being scanned by the regular expression.</param>
        </member>
        <member name="M:System.Text.RegularExpressions.Generated.IsRtlTextRegex_0.RunnerFactory.Runner.TryFindNextPossibleStartingPosition(System.ReadOnlySpan{System.Char})">
            <summary>Search <paramref name="inputSpan"/> starting from base.runtextpos for the next location a match could possibly start.</summary>
            <param name="inputSpan">The text being scanned by the regular expression.</param>
            <returns>true if a possible match was found; false if no more matches are possible.</returns>
        </member>
        <member name="T:System.Text.RegularExpressions.Generated.Utilities">
            <summary>Helper methods used by generated <see cref="T:System.Text.RegularExpressions.Regex"/>-derived implementations.</summary>
        </member>
        <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout">
            <summary>Default timeout value set in <see cref="T:System.AppContext"/>, or <see cref="F:System.Text.RegularExpressions.Regex.InfiniteMatchTimeout"/> if none was set.</summary>
        </member>
        <member name="F:System.Text.RegularExpressions.Generated.Utilities.s_hasTimeout">
            <summary>Whether <see cref="F:System.Text.RegularExpressions.Generated.Utilities.s_defaultTimeout"/> is non-infinite.</summary>
        </member>
        <member name="M:System.Text.RegularExpressions.Generated.Utilities.IndexOfNonAsciiOrAny_1861681229F79B552251C84FF351AFD5B7682E7A5D071E5C5F2BB68943FFB41B(System.ReadOnlySpan{System.Char})">
            <summary>Finds the next index of any character that matches a character in the set [\u0530-\u074F\u0780-\u07BF].</summary>
        </member>
    </members>
</doc>
