Use the LibAPNG NuGet package instead of a hint path reference
build / build (push) Has been cancelled
build / publish (push) Has been cancelled

This commit is contained in:
ema
2026-04-30 10:41:08 +08:00
parent b8f5e29a3b
commit 38246bea17
4 changed files with 21 additions and 179 deletions
@@ -258,3 +258,21 @@ internal class APngProvider : AnimationProvider
}
}
}
file static class FrameExtension
{
public static BitmapSource GetBitmapSource(this Frame frame)
{
using MemoryStream stream = frame.GetStream();
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.StreamSource = stream;
bitmapImage.EndInit();
bitmapImage.StreamSource = null;
bitmapImage.Freeze();
return bitmapImage;
}
}
@@ -1,176 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>LibAPNG</name>
</assembly>
<members>
<member name="P:LibAPNG.fcTLChunk.SequenceNumber">
<summary>
Sequence number of the animation chunk, starting from 0
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.Width">
<summary>
Width of the following frame
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.Height">
<summary>
Height of the following frame
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.XOffset">
<summary>
X position at which to render the following frame
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.YOffset">
<summary>
Y position at which to render the following frame
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.DelayNum">
<summary>
Frame delay fraction numerator
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.DelayDen">
<summary>
Frame delay fraction denominator
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.DisposeOp">
<summary>
Type of frame area disposal to be done after rendering this frame
</summary>
</member>
<member name="P:LibAPNG.fcTLChunk.BlendOp">
<summary>
Type of frame area rendering for this frame
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.IsSimplePNG">
<summary>
Indicate whether the file is a simple PNG.
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.DefaultImageIsAnimated">
<summary>
Indicate whether the default image is part of the animation
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.DefaultImage">
<summary>
Gets the base image.
If IsSimplePNG = True, returns the only image;
if False, returns the default image
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.Frames">
<summary>
Gets the frame array.
If IsSimplePNG = True, returns empty
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.IHDRChunk">
<summary>
Gets the IHDR Chunk
</summary>
</member>
<member name="P:LibAPNG.APNGBitmap.acTLChunk">
<summary>
Gets the acTL Chunk
</summary>
</member>
<member name="P:LibAPNG.Chunk.RawData">
<summary>
Get raw data of the chunk
</summary>
</member>
<member name="M:LibAPNG.Chunk.ModifyChunkData(System.Int32,System.Byte[])">
<summary>
Modify the ChunkData part.
</summary>
</member>
<member name="M:LibAPNG.Chunk.ModifyChunkData(System.Int32,System.UInt32)">
<summary>
Modify the ChunkData part.
</summary>
</member>
<member name="M:LibAPNG.Helper.ConvertEndian(System.Byte[])">
<summary>
Convert big-endian to little-endian or reserve
</summary>
</member>
<member name="M:LibAPNG.Helper.ConvertEndian(System.Int32)">
<summary>
Convert big-endian to little-endian or reserve
</summary>
</member>
<member name="M:LibAPNG.Helper.ConvertEndian(System.UInt32)">
<summary>
Convert big-endian to little-endian or reserve
</summary>
</member>
<member name="M:LibAPNG.Helper.ConvertEndian(System.Int16)">
<summary>
Convert big-endian to little-endian or reserve
</summary>
</member>
<member name="M:LibAPNG.Helper.ConvertEndian(System.UInt16)">
<summary>
Convert big-endian to little-endian or reserve
</summary>
</member>
<member name="M:LibAPNG.Helper.IsBytesEqual(System.Byte[],System.Byte[])">
<summary>
Compare two byte array
</summary>
</member>
<member name="T:LibAPNG.Frame">
<summary>
Describe a single frame.
</summary>
</member>
<member name="P:LibAPNG.Frame.IHDRChunk">
<summary>
Gets or Sets the acTL chunk
</summary>
</member>
<member name="P:LibAPNG.Frame.fcTLChunk">
<summary>
Gets or Sets the fcTL chunk
</summary>
</member>
<member name="P:LibAPNG.Frame.IENDChunk">
<summary>
Gets or Sets the IEND chunk
</summary>
</member>
<member name="P:LibAPNG.Frame.OtherChunks">
<summary>
Gets or Sets the other chunks
</summary>
</member>
<member name="P:LibAPNG.Frame.IDATChunks">
<summary>
Gets or Sets the IDAT chunks
</summary>
</member>
<member name="M:LibAPNG.Frame.AddOtherChunk(LibAPNG.OtherChunk)">
<summary>
Add an Chunk to end end of existing list.
</summary>
</member>
<member name="M:LibAPNG.Frame.AddIDATChunk(LibAPNG.IDATChunk)">
<summary>
Add an IDAT Chunk to end end of existing list.
</summary>
</member>
<member name="M:LibAPNG.Frame.GetStream">
<summary>
Gets the frame as PNG FileStream.
</summary>
</member>
</members>
</doc>
@@ -100,6 +100,9 @@
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.1.2">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="QuickLook.LibAPNG" Version="0.3.1">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup Condition=" '$(DefineConstants)' != '' and $(DefineConstants.Contains('USESVGSKIA')) ">
@@ -109,9 +112,6 @@
</ItemGroup>
<ItemGroup>
<Reference Include="LibAPNG">
<HintPath>.\LibAPNG.dll</HintPath>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>