{"id":34891095,"url":"https://github.com/ddegner/avif-local-support","last_synced_at":"2026-02-20T06:03:30.062Z","repository":{"id":309390150,"uuid":"1035653971","full_name":"ddegner/avif-local-support","owner":"ddegner","description":"Local AVIF plugin for WordPress. It converts JPEGs to AVIFs with a focus on quality and replaces JPEGs on the front-end of WordPress for browsers that support them. It also includes an LQIP (Low Quality Image Placeholder) feature that when on immediately shows a blurry version on the image.","archived":false,"fork":false,"pushed_at":"2026-02-15T16:24:07.000Z","size":8155,"stargazers_count":7,"open_issues_count":6,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-15T23:43:36.733Z","etag":null,"topics":["avif-converter","imagick","local","photography-website","plugin","wordpress"],"latest_commit_sha":null,"homepage":"https://www.daviddegner.com/blog/simple-avif-support-wordpress-plugin/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddegner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-10T21:19:19.000Z","updated_at":"2026-02-15T16:24:10.000Z","dependencies_parsed_at":"2025-08-11T17:38:22.731Z","dependency_job_id":null,"html_url":"https://github.com/ddegner/avif-local-support","commit_stats":null,"previous_names":["ddegner/avif-local-support"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/ddegner/avif-local-support","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddegner%2Favif-local-support","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddegner%2Favif-local-support/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddegner%2Favif-local-support/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddegner%2Favif-local-support/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddegner","download_url":"https://codeload.github.com/ddegner/avif-local-support/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddegner%2Favif-local-support/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29642907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T05:21:04.652Z","status":"ssl_error","status_checked_at":"2026-02-20T05:21:04.238Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avif-converter","imagick","local","photography-website","plugin","wordpress"],"created_at":"2025-12-26T05:31:54.544Z","updated_at":"2026-02-20T06:03:30.057Z","avatar_url":"https://github.com/ddegner.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AVIF Local Support\nContributors: ddegner\nTags: avif, images, performance, media, optimization\nRequires at least: 6.8\nTested up to: 6.9\nStable tag: 0.6.2\nRequires PHP: 8.3\nLicense: GPLv2 or later\nLicense URI: https://www.gnu.org/licenses/gpl-2.0.html\n\nHigh-quality AVIF image conversion for WordPress — local, quality-first.\n\n## Description\n\nBuilt by a [Boston photographer](https://www.daviddegner.com) for site owners who care about visual quality and full control. This plugin prioritizes **image quality** over everything else — no subscriptions, no external services.\n\n## Features\n\n- **Local Processing** — All conversion happens on your server. No subscriptions or external API calls. Works great on a shared CPU with 2GB RAM.\n- **Quality First** — Uses LANCZOS resizing, preserves ICC color profiles, and keeps EXIF/XMP/IPTC metadata intact.\n- **Fully Tunable** — Control quality (0–100), speed (0–10), chroma subsampling (4:2:0, 4:2:2, 4:4:4), and bit depth (8/10/12-bit).\n- **Smart Fallback** — Serves AVIF to supported browsers, JPEG to everyone else via picture elements.\n- **Automatic Conversion** — Convert on upload or via daily scheduled background scans.\n- **LQIP Placeholders** — Generate ThumbHash-based low-quality image placeholders for smooth loading.\n\n## How It Works\n\n**Front end:** The plugin wraps your img tags in picture elements with an AVIF source. Browsers that support AVIF load the smaller, higher-quality file — others gracefully fall back to JPEG.\n\n**Conversion:** Uses ImageMagick CLI (fastest), Imagick PHP extension (high quality), or GD Library (fallback) to convert JPEGs to AVIF on upload or via background jobs.\n\n**LQIP:** Generates compact (~30 byte) ThumbHash placeholders that display instantly while images load.\n\n## Installation\n\n1. Upload to `/wp-content/plugins/avif-local-support` or install via **Plugins → Add New**\n2. Activate the plugin\n3. Navigate to **Settings → AVIF Local Support**\n\n### Requirements\n\n- **PHP:** 8.3 or later\n- **WordPress:** 6.8 or later\n- **Recommended:** Imagick extension with AVIF-enabled ImageMagick\n\n## Server Setup\n\nThe plugin supports three conversion engines, in order of preference:\n\n### ImageMagick CLI (Fastest, Recommended)\n\nUses the ImageMagick command-line binary directly:\n\n- **System binary:** ImageMagick 7.x built with HEIF/AVIF support (via libheif)\n- **No PHP extension required**\n- **Benefits:** Fastest performance, LANCZOS resizing, full metadata preservation (EXIF, XMP, IPTC, ICC)\n- **Typical paths:** `/usr/bin/magick`, `/usr/local/bin/magick`, or Homebrew on macOS\n\nTo verify AVIF support:\n\n    magick -list format | grep -i avif\n\n### Imagick PHP Extension (High Quality)\n\nUses the PHP Imagick extension:\n\n- **PHP extension:** imagick\n- **System libraries:** ImageMagick built with HEIF/AVIF support (via libheif)\n- **Benefits:** LANCZOS resizing, full metadata preservation (EXIF, XMP, IPTC, ICC), color profile handling\n\nTo install on Ubuntu/Debian:\n\n    apt install php-imagick imagemagick libheif-dev\n\n### GD Library (Fallback)\n\nUses PHP's built-in GD library:\n\n- **PHP extension:** gd built with AVIF support (provides imageavif on PHP 8.1+)\n- **Note:** Some distro builds omit AVIF support; limited metadata preservation\n\n### MIME Type Configuration\n\nEnsure your web server is configured to serve .avif files as image/avif.\n\n### Documentation\n\n- [ImageMagick installation](https://imagemagick.org/script/download.php)\n- [PHP Imagick installation](https://www.php.net/imagick)\n- [PHP GD installation](https://www.php.net/manual/en/image.installation.php)\n- [ImageMagick format support](https://imagemagick.org/script/formats.php)\n\n### Need help with setup?\n\nIf you're not sure what to install or upgrade, copy your **Server Diagnostics** from the plugin status/tools screen (or run `wp avif status --format=json`) and paste it into an LLM.\n\nExample prompt:\n\n    I need AVIF support for WordPress. Based on this diagnostics output, give me step-by-step commands to install or upgrade ImageMagick, libheif, and PHP Imagick on my server.\n\nAfter applying changes, verify with:\n\n    wp avif status\n    magick -list format | grep -i avif\n\n## WP-CLI Commands\n\nManage AVIF conversions from the command line.\n\n### Status\n\nShow system status and AVIF support diagnostics:\n\n    wp avif status\n    wp avif status --format=json\n\n### Convert\n\nConvert JPEG images to AVIF format:\n\n    wp avif convert --all\n    wp avif convert 123\n    wp avif convert --all --dry-run\n\nOptions:\n\n- `\u003cattachment-id\u003e` — Specific attachment ID to convert\n- `--all` — Convert all attachments missing AVIF versions\n- `--dry-run` — Show what would be converted without actually converting\n\n### Statistics\n\nShow AVIF conversion statistics:\n\n    wp avif stats\n    wp avif stats --format=json\n\n### Logs\n\nView or clear conversion logs:\n\n    wp avif logs\n    wp avif logs --limit=50\n    wp avif logs --clear\n\nOptions:\n\n- `--clear` — Clear all logs\n- `--limit=\u003cnumber\u003e` — Number of logs to show (default: 20)\n\n### Delete\n\nDelete AVIF files for an attachment or all attachments:\n\n    wp avif delete 123\n    wp avif delete --all --yes\n\nOptions:\n\n- `\u003cattachment-id\u003e` — Attachment ID to delete AVIF files for\n- `--all` — Delete all AVIF files in the media library\n- `--yes` — Skip confirmation prompt when using --all\n\n### LQIP Commands\n\nManage LQIP (ThumbHash) placeholders:\n\n    wp lqip stats\n    wp lqip generate --all --force\n    wp lqip generate 123\n    wp lqip delete --all --yes\n\nFor more information, visit [wp-cli.org](https://wp-cli.org/).\n\n## Frequently Asked Questions\n\n### Does this modify my original JPEGs?\n\nNo. AVIF files are created alongside your existing images. Your originals remain untouched.\n\n### Will this slow down uploads?\n\nIf \"Convert on upload\" is enabled, uploads may take slightly longer. You can disable this and use scheduled background conversion instead.\n\n### Do I need Imagick?\n\nRecommended but not required. Imagick provides the best quality and preserves metadata/color profiles. The plugin falls back to GD if unavailable.\n\n### Does it track users or send data externally?\n\nNo. Zero tracking, zero external calls. Everything runs locally.\n\n### Why do I see \"High risk of memory exhaustion\"?\n\nThe plugin estimates memory before processing to prevent crashes. Try switching to \"ImageMagick CLI\" engine, increasing PHP memory_limit, or checking \"Disable memory check\" in settings.\n\n### AVIF conversions produce empty files on LiteSpeed?\n\nThis is caused by libheif 1.12.0 crashing in LiteSpeed's restricted environment. Upgrade libheif to 1.15+ to fix. See the [WordPress.org FAQ](https://wordpress.org/plugins/avif-local-support/#faq) for build instructions.\n\n### ImageMagick CLI not detected on LiteSpeed/CyberPanel?\n\nLiteSpeed's open_basedir restriction prevents PHP from detecting executables outside allowed paths. The binary may still work — try setting the path manually in settings.\n\n## Screenshots\n\n1. **AVIF Images** — Configure AVIF delivery, conversion quality, speed, and engine settings\n2. **LQIP** — Configure ThumbHash generation and display behavior\n3. **Tools** — Run AVIF/LQIP bulk tools and review server support diagnostics\n4. **About** — Quick reference and version info\n\n## Changelog\n\n### 0.6.2\n\n- Chore: Added a commit-based beta build workflow that publishes prerelease ZIPs to GitHub Releases.\n- Chore: Kept stable release builds tag-based and guarded WordPress.org deploy so `beta-*` tags are ignored.\n\n### 0.6.1\n\n- Fix: Clear Logs now reliably clears stored logs and prevents stale long-running processes from repopulating old entries.\n- Enhancement: Logs panel now refreshes from server state after clearing, so UI always matches stored data.\n- Enhancement: Clear Logs button is temporarily disabled while the clear request is in progress to prevent duplicate requests.\n- Chore: Uninstall now removes the logs-generation option used by the clear-logs protection.\n\n### 0.6.0\n\n- Fix: Removed redundant on-upload AVIF conversion hook path to avoid duplicate work and keep upload conversion predictable.\n- Fix: Improved daily scheduling behavior so overdue events run instead of being pushed to tomorrow, and on-demand AVIF scans always run regardless of schedule toggle state.\n- Feature: Added stop control for bulk LQIP generation (REST endpoint + transient stop signal + admin status updates).\n- Enhancement: Standardized admin LQIP wording and labels, including a short LQIP explanation at the top of the LQIP tab.\n- Fix: Uninstall now clears LQIP stop transient and uses `delete_post_meta_by_key()` for ThumbHash metadata cleanup.\n- Chore: Plugin Check hardening for release by excluding non-distribution files from check scope and clearing stray `.DS_Store` files.\n\n### 0.5.23\n\n- Feature: Added an AVIF Settings Playground for real JPEG/AVIF preview comparisons and one-click apply of tested settings.\n- Feature: Expanded Tools with dedicated LQIP bulk generation/deletion controls and progress/status feedback.\n- Enhancement: Refreshed admin UX across tabs (clearer labels, advanced sections, improved diagnostics and logs layout).\n- Enhancement: Updated WordPress.org screenshots to match the current AVIF, Placeholders, Tools, and About screens.\n- Fix: Plugin Check hardening for release by escaping help-tip output safely and using `wp_delete_file()` in preview cleanup paths.\n\n### 0.5.22\n\n- Fix: AVIF Delete All now removes only plugin companion AVIF files for JPEG attachments, preventing deletion of user-uploaded AVIF originals.\n- Fix: CSS background AVIF overrides now keep a JPEG fallback and use `image-set(...)` so non-AVIF browsers still render backgrounds.\n- Fix: ThumbHash decoder aspect-ratio extraction corrected (`h16 \u0026 7`) to match the upstream reference implementation.\n- Fix: Restore defaults now resets background-image and all LQIP settings in addition to core AVIF settings.\n- Fix: Corrected malformed HTML in the Tools diagnostics table around the schedule-time display.\n- Fix: Clarified Tools count labels to match scope: AVIF now shows file-level totals as \"JPEG Files\" (originals + generated sizes), and LQIP shows attachment-level totals as \"Media Items\" (plus clearer \"Without AVIF/LQIP\" and \"AVIF files\" progress wording).\n\n### 0.5.21\n\n- Enhancement: ThumbHash input increased to 100px for richer LQIP placeholders.\n- Fix: AVIF srcset now correctly lists all responsive sizes by running after WordPress adds srcset attributes.\n- Fix: Single AVIF images now include width descriptors for proper responsive selection.\n- Refactor: Removed redundant `render_block` filter; unified image processing in `the_content` filter.\n\n### 0.5.20\n\n- Fix: Instant reveal now waits for `img.decode()` to prevent white flash on fast-loading images.\n\n### 0.5.19\n\n- Refactor: Simplified LQIP fade transition — removed blur filter and scale animation.\n- Fix: Eliminated white flash during LQIP-to-image transition by ensuring image is fully visible before removing placeholder.\n- Fix: Fast-loading images now appear instantly without the 400ms fade delay.\n- Cleanup: Removed unused per-image load duration tracking.\n\n### 0.5.18\n\n- Feature: LQIP Generate All now shows real-time progress counter, status text, and stop button.\n- Feature: Unified spinner/status UI for both AVIF and LQIP tools panels.\n- Fix: \"AVIF conversion available\" badge now correctly shows \"Yes\" when engines report support.\n- Fix: AVIF Delete All button now correctly re-enables Generate All button after completion.\n\n### 0.5.17\n\n- Fix: LQIP background now correctly clears for already-loaded/cached images.\n\n### 0.5.16\n\n- Feature: Restored LQIP background cleanup after image load.\n- Feature: Added \"Pixelated placeholders\" option to display ThumbHash as sharp pixels.\n- Enhancement: Improved LQIP transition — blur-up effect with scale animation.\n- Change: Transition updated to 400ms ease-out for smoother reveal.\n\n### 0.5.15\n\n- Enhancement: Tuned LQIP fade thresholds based on human perception research.\n- Change: Page load window increased to 2 seconds (covers initial render).\n- Change: Individual load duration increased to 200ms (perception threshold).\n\n### 0.5.14\n\n- Fix: WordPress Plugin Check compliance — proper escaping for inline scripts/styles.\n- Fix: Replace `strip_tags()` with `wp_strip_all_tags()` in BackgroundImages.\n- Fix: Prefix global variables with plugin prefix.\n- Chore: Remove `.DS_Store` files from repository.\n\n### 0.5.13\n\n- Refactor: Simplified LQIP fade logic by removing background cleanup step.\n\n### 0.5.12\n\n- Feature: LQIP operations now log successes, failures, and summaries to the Logs panel.\n- Fix: LQIP stats now correctly validate metadata structure, matching generation skip logic.\n- Fix: Add object cache clearing before LQIP generation to prevent stale data on servers with persistent caching.\n- Fix: Prevent false positive \\\"success\\\" reports in `wp lqip generate` when generation fails silently but stale data exists.\n- Fix: Remove deprecated `imagedestroy()` calls for PHP 8.0+ compatibility.\n- Refactor: Consolidate LQIP generation logic into shared helper for consistency between Admin UI and CLI.\n\n### 0.5.11\n\n- Fix: Critical fix for `wp lqip generate --force` option.\n- Fix: `wp lqip delete --all` now correctly clears object cache to prevent stale stats.\n\n### 0.5.9\n\n- Feature: Added `--force` option to `wp lqip generate` command to force regeneration of LQIPs.\n\n### 0.5.8\n\n- Fix: Resolved \"Insufficient memory\" error when generating LQIP for high-resolution images by optimizing ImageMagick loading.\n\n### 0.5.7\n\n- Feature: CSS background image AVIF support — replaces JPEG background images with AVIF versions. Thanks to [David C.](https://www.rankxpress.com)\n- Feature: Works with page builders (Elementor, Divi, Beaver Builder, WPBakery, Bricks, etc.)\n- Feature: New setting \"Serve AVIF for CSS backgrounds\" under AVIF serving options\n- Fix: Versioned image URLs (e.g., `image.jpg?ver=123`) now correctly detected and replaced\n- Fix: Query string stripping for CSS file path resolution\n- Security: Sanitize CSS selectors to prevent XSS injection\n\n### 0.5.6\n\n- Enhancement: Smart fade logic — only apply fade transition for slow-loading images\n- Enhancement: Images loading within 1 second of page load display instantly (no fade)\n- Enhancement: Cached/fast-loading images skip fade for snappier feel\n\n### 0.5.5\n\n- Feature: Added \"Fade in images\" option to smoothly transition from LQIP to full image\n- Fix: Used img.decode() to prevent white flash during LQIP fade transition\n- Fix: CSS selector now correctly handles both picture wrapper and standalone img cases\n\n### 0.5.4\n\n- Feature: Added optional smooth fade-in for LQIP images\n- Translations: Added German, Italian, Japanese, Portuguese (Brazil), and Russian translations\n- Enhancement: Updated translations for Spanish, French, Hindi, and Chinese\n- Fix: `wp lqip generate --all` now correctly processes all eligible images\n- Fix: `wp lqip stats` accurately counts all supported image types\n- Fix: LQIP JavaScript is now correctly excluded when feature is disabled\n- Fix: Improved error logging for LQIP generation failures\n\n### 0.5.3\n\n- Fix: Added missing LQIP options to plugin activation (thumbhash_size, generate_on_upload, generate_via_schedule)\n- Fix: Added missing LQIP options to uninstall cleanup for complete data removal\n- Fix: Properly minified thumbhash-decoder.min.js (62% size reduction)\n- Fix: Excluded developer documentation from WordPress plugin distribution\n\n### 0.5.2\n\n- Feature: Bundled ThumbHash library — no Composer dependency required on deployment\n- Enhancement: Improved LQIP generation with better error handling, progress reporting, and memory management\n- Enhancement: Added `--limit` and `--verbose` options to `wp lqip generate` command\n- Fix: Resolved hanging issue in `wp lqip generate --all` command with better error handling and progress output\n- Fix: Clear error messages when ThumbHash library is unavailable\n\n### 0.5.1\n\n- Fix: Improved error handling and logging for ThumbHash generation\n- Enhancement: WP-CLI now warns if LQIP feature is disabled in settings\n- Enhancement: Better diagnostics for missing source files during LQIP generation\n\n### 0.5.0\n\n- Feature: LQIP (Low Quality Image Placeholder) using ThumbHash for smooth image loading\n- Feature: WP-CLI commands for LQIP management (`wp lqip stats`, `wp lqip generate`, `wp lqip delete`)\n- Feature: Dedicated LQIP settings tab with enable/disable toggle\n- Enhancement: Reorganized admin UI with combined AVIF Tools section\n- Enhancement: Consistent stat labels across AVIF and LQIP tools (Images/With/Without)\n- Enhancement: Renamed \"Test conversion\" to \"Test AVIF Conversion\" for clarity\n- Enhancement: Removed beta labels from LQIP feature\n- Fix: LQIP stats now correctly count all supported image types (JPEG, PNG, GIF, WebP)\n- Dev: Auto-fixed 6,152+ PHPCS issues for WordPress coding standards compliance\n\n### 0.4.9\n\n- Fix: WordPress Plugin Check compliance — proper escaping, Yoda conditions, and PHPCS ignores\n- Fix: Improved uninstall cleanup with object cache awareness\n- Dev: Code formatting aligned with WordPress coding standards\n\n### 0.4.8\n\n- Fix: Resolved logging pipeline issues where REST API couldn't retrieve logs due to `is_admin()` check\n- Fix: Fixed upload test timeout by temporarily disabling synchronous AVIF conversion during test uploads\n- Fix: Improved AJAX feedback for log operations (clear/refresh)\n- Docs: Updated minimum requirements to WordPress 6.8 and PHP 8.3\n- Docs: Cleaned up README header format for WordPress.org compatibility\n- Docs: Removed donate link from readme\n- Dev: Added WordPress stubs for improved IDE support\n\n### 0.4.7\n\n- Enhancement: Improved time formatting in conversion progress display (hh:mm:ss format)\n- Enhancement: CLI code formatting improvements\n- Fix: Corrected contributor username in readme\n\n### 0.4.6\n\n- Docs: Added WordPress.org metadata headers\n- Docs: Updated tested up to WordPress 6.9\n\n### 0.4.5\n\n- Fix: Corrected \"Upload \u0026 Test\" status display issues (spinner visibility, status text alignment)\n- Fix: `wp avif delete` command now correctly reports success/failure counts and handles permission errors\n- Fix: `wp avif convert` command output now includes count of missing AVIFs\n- Enhancement: Added GitHub Action for automated release creation\n\n### 0.4.4\n\n- Feature: Fully asynchronous \"Upload \u0026 Test\" conversion to prevent timeouts on large images\n- Enhancement: Re-architected test conversion to use sequential polling\n- Enhancement: Admin UI modularized with template-based architecture\n- Optimization: Removed unused `vendor` storage and legacy dependencies, reducing plugin size\n- Fix: Restored robust queue rendering for test results\n\n### 0.4.3\n\n- Added WP-CLI commands: status, convert, stats, logs, delete\n- Refactored admin interface with modular architecture\n- Improved logging and environment diagnostics\n\n### 0.4.2\n\n- Auto-detection for ImageMagick CLI in \"Auto\" mode\n- REST API replaces admin-ajax for better performance\n- Smart -define namespace probing (heic/avif)\n- Tested with WordPress 6.9\n\n### 0.4.1\n\n- Compatibility: Tested up to WordPress 6.9\n\n### 0.4.0\n\n- Major refactor: strict types, DTOs, dedicated Encoder classes\n- Optimized frontend HTML parsing\n- Enhanced CLI execution and error handling\n- Composer support (PSR-4 ready)\n\n### 0.3.x\n\n- Environment variable injection for restricted PHP environments\n- Original image source handling fixes\n- Engine priority: CLI, Imagick, GD\n\n### 0.2.x\n\n- ImageMagick CLI support with auto-detection\n- Memory pre-check to prevent fatal errors\n- Logs panel with detailed entries\n- Lightbox anchor rewriting\n- Chroma subsampling and bit depth options\n\n### 0.1.x\n\n- Initial release with Imagick/GD support\n- ICC profile preservation\n- EXIF orientation handling\n- Basic admin interface\n\nSee [GitHub releases](https://github.com/ddegner/avif-local-support/releases) for complete version history.\n\n## Contributing\n\nContributions welcome! Please submit issues and pull requests on [GitHub](https://github.com/ddegner/avif-local-support).\n\n## License\n\nGPL v2 or later — [View License](https://www.gnu.org/licenses/gpl-2.0.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddegner%2Favif-local-support","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddegner%2Favif-local-support","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddegner%2Favif-local-support/lists"}