{"id":359516,"date":"2026-08-31T17:24:48","date_gmt":"2026-08-31T17:24:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/local-avif-webp\/"},"modified":"2026-08-31T17:24:24","modified_gmt":"2026-08-31T17:24:24","slug":"dvmagic-local-image-conversion","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dvmagic-local-image-conversion\/","author":23212564,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"DVMAGIC Local Image Conversion for AVIF and WebP","header_author":"DVMAGIC","header_description":"Convert Media Library uploads to AVIF or WebP locally \u2014 no API, no quota. Batch-convert existing JPEG\/PNG\/GIF with optional originals kept on disk.","assets_banners_color":"444d5f","last_updated":"2026-08-31 17:24:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/seohero.uk\/free-plugins\/","header_author_uri":"https:\/\/www.linkedin.com\/in\/dmitri-shevelkin-4a654098\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"dvmagic","date":"2026-08-31 17:24:24","revision":3674718}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3674718,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3674718,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3674718,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3674718,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3674718,"resolution":"1","location":"assets","locale":"","width":1248,"height":1043}},"screenshots":{"1":"Settings and server capability panel"}},"plugin_section":[],"plugin_tags":[194661,232939,29161,233,15376],"plugin_category":[],"plugin_contributors":[278533],"plugin_business_model":[],"class_list":["post-359516","plugin","type-plugin","status-publish","hentry","plugin_tags-avif","plugin_tags-convert-images","plugin_tags-image-optimization","plugin_tags-media-library","plugin_tags-webp","plugin_contributors-dvmagic","plugin_committers-dvmagic"],"banners":{"banner":"https:\/\/ps.w.org\/dvmagic-local-image-conversion\/assets\/banner-772x250.png?rev=3674718","banner_2x":"https:\/\/ps.w.org\/dvmagic-local-image-conversion\/assets\/banner-1544x500.png?rev=3674718","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dvmagic-local-image-conversion\/assets\/icon-128x128.png?rev=3674718","icon_2x":"https:\/\/ps.w.org\/dvmagic-local-image-conversion\/assets\/icon-256x256.png?rev=3674718","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dvmagic-local-image-conversion\/assets\/screenshot-1.png?rev=3674718","caption":"Settings and server capability panel"}],"raw_content":"<!--section=description-->\n<p><strong>DVMAGIC Local Image Conversion for AVIF and WebP<\/strong> converts JPEG, PNG and GIF uploads to modern formats on your own server \u2014 and can batch-convert your existing Media Library.<\/p>\n\n<p>Built by <a href=\"https:\/\/seohero.uk\/free-plugins\/\">Auslander Studio<\/a> for production WordPress sites we operate ourselves. Unlike SaaS optimizers, everything runs locally with no usage caps \u2014 full feature set, free.<\/p>\n\n<h4>What makes this plugin different<\/h4>\n\n<ul>\n<li><strong>No external API<\/strong> \u2014 images never leave your server<\/li>\n<li><strong>No subscription or quota<\/strong> \u2014 batch the whole Media Library when you need to<\/li>\n<li><strong>AVIF-first with WebP fallback<\/strong> when the host cannot encode AVIF<\/li>\n<li><strong>Optional keep originals<\/strong> for rollback without a second plugin<\/li>\n<li><strong>Server capability panel<\/strong> so you know what the host can encode before you batch<\/li>\n<li><strong>URL rewrite<\/strong> in post content and meta after conversion<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Convert on upload (optional)<\/li>\n<li>Batch convert legacy library images<\/li>\n<li>AVIF primary with automatic WebP fallback when the host lacks AVIF encode<\/li>\n<li>Optional <strong>Keep originals<\/strong> (off by default)<\/li>\n<li>Server capability panel (Imagick, GD, AVIF\/WebP)<\/li>\n<li>URL rewrite in post content and meta after conversion<\/li>\n<li>Action Scheduler queue when available; WP-Cron fallback<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li><strong>AVIF encoding:<\/strong> PHP extension <strong>imagick<\/strong> (PECL imagick) with ImageMagick built for AVIF output (AVIF in <code>Imagick::queryFormats('AVIF')<\/code>). GD cannot encode AVIF in this plugin.<\/li>\n<li><strong>WebP encoding:<\/strong> <strong>imagick<\/strong> with WebP support, <strong>or<\/strong> PHP extension <strong>gd<\/strong> with WebP enabled (<code>imagewebp<\/code> available).<\/li>\n<li>Sufficient disk space and CPU for batch jobs<\/li>\n<li><strong>Back up <code>wp-content\/uploads\/<\/code> before running a full library batch<\/strong><\/li>\n<\/ul>\n\n<p>Check <strong>Media \u2192 DVMAGIC Image Conversion \u2192 Server capabilities<\/strong> after install \u2014 the panel shows Imagick, Imagick WebP, Imagick AVIF, and GD WebP on your host.<\/p>\n\n<h4>PHP extensions (summary)<\/h4>\n\n<ul>\n<li><strong>AVIF output<\/strong> \u2014 PHP extension <code>imagick<\/code> (PECL). ImageMagick on the server must support AVIF encode (host-dependent; often ImageMagick 7 + libavif). Check \u201cImagick AVIF\u201d in the plugin\u2019s Server capabilities panel.<\/li>\n<li><strong>WebP output<\/strong> \u2014 <code>imagick<\/code> with WebP support, <strong>or<\/strong> PHP extension <code>gd<\/code> with WebP enabled (<code>imagewebp<\/code>).<\/li>\n<li><strong>Reading JPEG\/PNG\/GIF<\/strong> \u2014 <code>imagick<\/code> and\/or <code>gd<\/code> (typical on most hosts).<\/li>\n<\/ul>\n\n<p>If only GD with WebP is available, set <strong>Primary format<\/strong> to WebP, or leave AVIF and the plugin will fall back to WebP when AVIF encode is not detected.<\/p>\n\n<h4>Author<\/h4>\n\n<p>DVMAGIC \u2014 <a href=\"https:\/\/www.linkedin.com\/in\/dmitri-shevelkin-4a654098\/\">LinkedIn<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install from WordPress.org.<\/li>\n<li>Activate <strong>DVMAGIC Local Image Conversion for AVIF and WebP<\/strong>.<\/li>\n<li>Open <strong>Media \u2192 DVMAGIC Image Conversion<\/strong>.<\/li>\n<li>Review server capabilities, save settings, then run a small test upload before batching the whole library.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20call%20an%20external%20api%3F\"><h3>Does this call an external API?<\/h3><\/dt>\n<dd><p>No. All encoding happens on your server.<\/p><\/dd>\n<dt id=\"will%20avif%20work%20on%20every%20host%3F\"><h3>Will AVIF work on every host?<\/h3><\/dt>\n<dd><p>No. <strong>AVIF encoding requires the PHP <code>imagick<\/code> extension<\/strong> and an ImageMagick build that can write AVIF (see Server capabilities: \u201cImagick AVIF\u201d). Many shared hosts have Imagick without AVIF, or only GD with WebP.<\/p>\n\n<p>When AVIF encode is unavailable, the plugin <strong>falls back to WebP<\/strong> (via Imagick or GD).<\/p><\/dd>\n<dt id=\"which%20php%20extensions%20do%20i%20need%3F\"><h3>Which PHP extensions do I need?<\/h3><\/dt>\n<dd><ul>\n<li><strong>AVIF:<\/strong> enable <strong><code>imagick<\/code><\/strong> in PHP and ensure ImageMagick on the server supports AVIF output (ask your host or check the plugin\u2019s capability panel).<\/li>\n<li><strong>WebP:<\/strong> <strong><code>imagick<\/code><\/strong> (WebP) <strong>or<\/strong> <strong><code>gd<\/code><\/strong> with WebP (<code>imagewebp<\/code>).<\/li>\n<li>You do <strong>not<\/strong> need both imagick and gd \u2014 one working WebP path is enough if you use WebP as primary or accept AVIF\u2192WebP fallback.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20keep%20jpeg%2Fpng%20files%20after%20conversion%3F\"><h3>Can I keep JPEG\/PNG files after conversion?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Keep originals<\/strong> in settings. WordPress still serves the modern attachment file.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Renamed plugin for WordPress.org guidelines (distinctive DVMAGIC branding)<\/li>\n<li>Unified <code>dvmlic_<\/code> prefixes for options, AJAX, hooks, and classes<\/li>\n<li>Admin batch UI JavaScript moved to enqueued <code>assets\/admin.js<\/code><\/li>\n<li>Migrates legacy <code>smo_*<\/code> settings on activation when present<\/li>\n<li>Readme: explicit PHP extension requirements for AVIF (imagick) and WebP (imagick or gd)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Plugin Check: WP_Filesystem \/ wp_delete_file for file ops<\/li>\n<li>Prefixed filters and settings helper<\/li>\n<li>Tested up to WordPress 7.1<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial WordPress.org release<\/li>\n<li>Upload + batch conversion, keep originals, server status panel<\/li>\n<\/ul>","raw_excerpt":"Unlimited local AVIF and WebP conversion for the WordPress Media Library. No API keys. No monthly quota.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359516"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dvmagic"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359516"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359516"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359516"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359516"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359516"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}