GifBolt 1.0.55
dotnet add package GifBolt --version 1.0.55
NuGet\Install-Package GifBolt -Version 1.0.55
<PackageReference Include="GifBolt" Version="1.0.55" />
<PackageVersion Include="GifBolt" Version="1.0.55" />
<PackageReference Include="GifBolt" />
paket add GifBolt --version 1.0.55
#r "nuget: GifBolt, 1.0.55"
#:package GifBolt@1.0.55
#addin nuget:?package=GifBolt&version=1.0.55
#tool nuget:?package=GifBolt&version=1.0.55
GifBolt.Core
Cross-platform GIF decoding library (.NET Standard 2.0) with native C++ decoder integration.
Features
- GIF Decoding: Native C++ decoder using giflib via P/Invoke
- Frame Access: Get RGBA pixel data and timing information for each frame
- Memory Efficient: Background frame prefetching for smooth playback
- Cross-Platform Support: Works on Windows, macOS, and Linux
- Multiple Load Methods: Load from file path, byte array, or stream
Installation
dotnet add package GifBolt
Usage
Basic Loading and Frame Access
using GifBolt;
var player = new GifPlayer();
// Load from file
player.Load("path/to/animation.gif");
// Or load from byte array
byte[] gifData = File.ReadAllBytes("animation.gif");
player.Load(gifData);
// Or load from stream
using var stream = File.OpenRead("animation.gif");
player.Load(stream);
// Access GIF properties
int width = player.Width;
int height = player.Height;
int frameCount = player.FrameCount;
bool loops = player.IsLooping;
Frame Data Access
// Get pixel data for a specific frame (RGBA32 format)
byte[] pixels = player.GetFramePixels(0);
// Get frame timing
int delayMs = player.GetFrameDelayMs(0);
// Iterate through frames
for (int i = 0; i < player.FrameCount; i++)
{
byte[] framePixels = player.GetFramePixels(i);
int frameDelay = player.GetFrameDelayMs(i);
// Render frame...
}
Playback Control
// Control playback state (for your render loop)
player.Play(); // Sets IsPlaying = true
player.Pause(); // Sets IsPlaying = false
player.Stop(); // Sets IsPlaying = false, CurrentFrame = 0
// Check playback state
if (player.IsPlaying)
{
// Advance frame based on timing
player.CurrentFrame = (player.CurrentFrame + 1) % player.FrameCount;
}
Frame Delay Configuration
// Set minimum frame delay (useful for very fast GIFs)
player.SetMinFrameDelayMs(20); // Limit to 50 FPS
// Get current minimum delay
int minDelay = player.GetMinFrameDelayMs();
Prefetching Control
// Enable/disable background prefetching (default: true)
player.EnablePrefetching = true;
// Prefetching decodes frames ahead of CurrentFrame in background
// for smoother sequential playback
Platform Wrappers
GifBolt.Core provides the low-level GIF decoding API. For UI controls:
- WPF: Use
GifBolt.Wpfpackage withAnimationBehaviorattached properties - Avalonia: Use
GifBolt.Avaloniapackage withAnimationBehaviorattached properties
Documentation
For complete documentation, visit https://github.com/yourusername/GifBolt
License
MIT License - see LICENSE file for details
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on GifBolt:
| Package | Downloads |
|---|---|
|
GifBolt.Wpf
WPF control for animating GIFs with GPU acceleration support via GifBolt native library. Cross-platform support for Windows (D3D11) and macOS (Metal via Parallels/CrossOver). |
|
|
GifBolt.Avalonia
Avalonia control for animating GIFs with GPU acceleration support via GifBolt native library. Cross-platform support for Windows (D3D11), macOS (Metal), and Linux. |
GitHub repositories
This package is not used by any popular GitHub repositories.