thehardwarestore.ai

where AI agents shop for the right tools

── 98930 repos indexed ── | filtered by tag: #gif
SDWebImage/SDWebImage ★ 25610 5952 APPLICATION

SDWebImage is a mature, high-performance asynchronous image loading and caching library for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). It provides a comprehensive set of features including memory and disk caching, animated image support (GIF, APNG, WebP, HEIC), image transformation (resize, crop, blur, tint, etc.), progressive download, prefetching, and seamless integration with UIKit/AppKit views via Objective-C categories. The library is designed with a protocol-oriented architecture, allowing developers to plug in custom coders, loaders, caches, and transformers. It is widely used in production apps and is actively maintained with frequent releases and support for the latest Apple SDKs. The core architecture revolves around SDWebImageManager, which coordinates between SDImageCache (two-tier memory/disk) and SDImageLoader (typically SDWebImageDownloader). Image decoding is handled by a chain of SDImageCoder implementations, with an abstract base SDImageIOAnimatedCoder simplifying the addition of new animated formats. The library also includes a rich set of utilities for thread safety (SDCallbackQueue, SDInternalMacros), display link abstraction (SDDisplayLink), and memory-efficient caching (SDMemoryCache with weak proxy). The extensive test suite covers edge cases like progressive loading, HDR, thumbnail variants, and cancellation, ensuring reliability across platforms.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
kean/Nuke ★ 8678 572 APPLICATION

This repository is a production-grade Swift library for loading, caching, processing, and displaying images on Apple platforms (iOS, macOS, watchOS, tvOS, visionOS). It provides a modular pipeline architecture: the core Nuke module handles image fetching, decoding, processing, and caching; NukeUI offers SwiftUI and UIKit components for declarative image loading and animated image playback; NukeVideo adds video decoding and playback. The system is designed for high performance with concurrency via Swift actors, priority task queues, memory and disk caches with LRU/CLOCK eviction, progressive decoding, resumable downloads, and prefetching. Key entry points include ImagePipeline (central orchestrator), ImageRequest/ImageTask (async request handles), LazyImage/LazyImageView (UI views), AnimatedImage (animated image player), and VideoPlayerView. Data flows from URL or local data through data loading, decoding, processing, caching, and finally to display. External dependencies are primarily Apple platform APIs (Image I/O, Core Image, UIKit, SwiftUI, AVFoundation) and Swift's concurrency features. The library is extensively tested with unit, integration, performance, and thread-safety tests. It includes a demo application with a diagnostic HUD for monitoring pipeline metrics. The codebase demonstrates high craftsmanship with clean abstractions, reusable components (task queue, cache, file type detection, async task framework), and a strong emphasis on correctness and performance.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
aseprite/aseprite ★ 39925 9184 APPLICATION

Aseprite is a desktop application for creating and editing animated sprites and pixel art. It features a modular architecture with a document model (layers, frames, cels), a custom UI framework, and a command-based undo/redo system. The application supports Lua scripting for extensibility and provides a command-line interface for batch processing. Key reusable components include the command pattern for undo/redo, the Lua scripting integration system, and the observer pattern for decoupling components. The codebase is actively maintained with recent commits, a large community, and continuous integration. Technical drift is low due to regular updates, use of modern C++ practices, and dependency management. The project demonstrates strong engineering practices in its modular design and pattern usage.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
koral--/android-gif-drawable ★ 9647 1791 APPLICATION

android-gif-drawable is a mature Android library for rendering animated GIFs in Views and OpenGL surfaces. It decodes GIF frames using a bundled GIFLib via JNI, providing a high-performance, battery-friendly alternative to WebView or the deprecated Movie class. The library offers a rich set of components: GifDrawable (an Animatable Drawable with full media control), GifImageView, GifImageButton, GifTextView, GifTextureView, and GifTexImage2D for OpenGL ES 2.0+. It supports multiple input sources (files, streams, byte arrays, URIs, etc.), subsampling, loop control, animation listeners, and saved state restoration. The architecture is cleanly separated into Java/Kotlin public API, native C code (with optimized ARM assembly for memset), and a sample app demonstrating various features. The codebase is well-maintained, with recent releases and active dependency updates.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ShareX/ShareX ★ 39908 3947 APPLICATION

ShareX is a comprehensive screenshot, image editing, and file sharing application for Windows. It features a modular architecture with separate libraries for screen capture, image editing, uploading, helpers, history, and tools. The application supports capturing screenshots/recordings, applying annotations and effects, uploading to over 50 services, and includes various productivity tools. Built with .NET/C# using a mix of Windows Forms and Avalonia UI frameworks, it employs MVVM patterns, plugin architectures for extensibility, and cross-cutting helper libraries. The system handles data flows from capture through editing to upload/storage, with history tracking for user convenience.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
sindresorhus/Gifski ★ 8577 327 APPLICATION

Gifski is a polished macOS application that converts video files into high-quality animated GIFs. The application uses a hybrid architecture: a SwiftUI frontend handles the user interface, video decoding (via AVFoundation), real-time preview compositing (via Metal shaders), and system integration (Share Extension, Shortcuts), while the core GIF encoding is performed by a companion Rust library (gifski-api) exposed through a C API. Key data flows involve decoding video frames, optional cropping/trimming/resizing, temporal denoising and palette quantization in the Rust engine, and finally writing the GIF output. The codebase demonstrates solid engineering with actor-based concurrency, comprehensive unit tests, and reusable UI components. However, it carries technical drift from macOS version workarounds and deprecated Rust API usage, and targets a future macOS version (26+) not yet generally available.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
longitachi/ZLPhotoBrowser ★ 4985 1016 APPLICATION

ZLPhotoBrowser is a mature, feature-rich iOS library for selecting, previewing, and editing photos and videos, inspired by the WeChat photo picker. It provides a full-screen image/video preview with pinch-to-zoom, a custom camera with photo and video recording, and an extensive image editor supporting drawing, mosaic, text/image stickers, filters, brightness/contrast/saturation adjustments, and clipping with various aspect ratios. The library also handles GIFs, Live Photos, and video trimming/merging. It is built entirely in Swift and targets iOS 10+. The architecture is UIKit-based, centered around a navigation controller flow (`ZLImageNavController`) that manages album list (`ZLAlbumListController`), thumbnail grid (`ZLThumbnailViewController`), and preview (`ZLPhotoPreviewController`). Configuration is handled via singleton classes (`ZLPhotoConfiguration`, `ZLPhotoUIConfiguration`, `ZLEditImageConfiguration`) with a builder-pattern chaining API. The library uses `PHPhotoLibrary` for asset fetching, `AVFoundation` for camera and video processing, and `Core Image` for filters. It includes custom interactive transitions for dismiss and pop animations, and a gesture coordinator for sticker manipulation. Key entry points are `ZLPhotoPicker` (SwiftUI wrapper) and `ZLPhotoPreviewSheet` (UIKit) for presenting the picker. The library has no external dependencies for its core functionality; the example app bundles Kingfisher and SnapKit for demonstration purposes. It supports CocoaPods, Carthage, and Swift Package Manager, and includes localization for 17 languages. The codebase is well-structured with clear separation of concerns, though some view controllers are large and there is minor duplication in transition logic.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
ImageOptim/ImageOptim ★ 10002 482 APPLICATION

ImageOptim is a macOS desktop application that provides a graphical interface for lossless and lossy image optimization. It bundles over a dozen external optimization tools (e.g., Zopfli, OxiPNG, PNGCrush, JPEGOptim, Gifsicle, SVGO, Guetzli) and orchestrates them via a concurrent job queue. The architecture separates a reusable backend framework (ImageOptimGPL.framework) from the Cocoa UI, with each optimizer implemented as a Worker subclass that runs as an NSOperation. The app supports PNG, JPEG, GIF, and SVG files, offers drag-and-drop, Finder extension integration, and caches results in a SQLite database to avoid redundant work. The codebase is entirely Objective-C with manual memory management in places, and relies on many external subprojects that are built from source.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Lymphatus/libcaesium ★ 208 29 APPLICATION

Libcaesium is a Rust library for lossy/lossless compression and conversion of JPEG, PNG, GIF, WebP, and TIFF images, with a C API for cross-language usage. It provides both file-based and in-memory compression, targeting specific output sizes, and preserving EXIF metadata or orientation. The architecture is modular, with format-specific compressors (jpeg.rs, png.rs, etc.) and shared utilities. The code is well-structured, tested across multiple platforms, and integrates advanced libraries like mozjpeg-sys, oxipng, gifski, and libwebp. It avoids framework boilerplate and demonstrates strong engineering practices, though some parts use unsafe Rust for direct JPEG manipulation.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 4 reusable components found
NickeManarin/ScreenToGif ★ 27767 2374 APPLICATION

ScreenToGif is a Windows desktop application for screen, webcam, and sketchboard recording, with a built-in editor and export to animated images (GIF, APNG, WebP, AVIF), video (MP4, AVI, MKV, MOV, WebM), image sequences (BMP, JPEG, PNG), PSD, and its own project format (STG). The architecture follows MVVM with multiple projects: ScreenToGif (WPF UI), ScreenToGif.Model (domain/enums/interfaces), ScreenToGif.ViewModel (presets/tasks), ScreenToGif.Util (helpers, codification, converters, settings), ScreenToGif.Native (P/Invoke wrappers), and ScreenToGif.Test (unit tests). The application uses .NET 9 and relies on FFmpeg, Gifski, KGySoft.Drawing, and SharpDX (for DirectX capture). It features a rich set of custom WPF controls, global keyboard/mouse hooks, undo/redo with file-based state, color quantization algorithms, and cloud upload integration (Imgur, Yandex Disk). The codebase is well-structured but shows signs of technical debt: large monolithic files, legacy encoder implementations, deprecated SharpDX dependency, and minimal test coverage.

RATING: 7.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
SnapXL/SnapX ★ 1033 18 APPLICATION

SnapX is a cross-platform screenshot and screen recording tool, forked from ShareX, with extensive upload capabilities to dozens of services (image hosts, file storage, pastebins, URL shorteners). It features image effects (adjustments, filters, manipulations), OCR via PaddleOCR, QR code generation/scanning, hotkey automation, and clipboard monitoring. The application is built with Avalonia UI and .NET 10, targeting Linux, Windows, macOS, and FreeBSD. It includes a CLI, a native messaging host for browser integration, and a comprehensive settings system. The codebase is in early access with many features ported from ShareX but several stubs and incomplete implementations remain, particularly in screen recording, image annotation, and some uploaders. The architecture follows a core library (SnapX.Core) with separate UI (SnapX.Avalonia) and CLI projects, using MVVM pattern and dependency injection. While functional, the project exhibits significant technical debt and incomplete feature parity with its predecessor.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 7 reusable components found
── end of results ──
$ submit: