{"id":344324,"date":"2026-07-24T07:06:47","date_gmt":"2026-07-24T07:06:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flowimage-inspector\/"},"modified":"2026-07-24T07:06:19","modified_gmt":"2026-07-24T07:06:19","slug":"khushal-image-audit-tools","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/khushal-image-audit-tools\/","author":23421333,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.15.0","stable_tag":"1.15.0","tested":"7.0.2","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"Khushal Image Audit Tools","header_author":"Khushal Tank","header_description":"Inspect WordPress Media Library images locally with secure, offline image analysis.","assets_banners_color":"ced2f2","last_updated":"2026-07-24 07:06:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/khushal-image-audit-tools\/","header_author_uri":"https:\/\/profiles.wordpress.org\/khushal1995\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.15.0":{"tag":"1.15.0","author":"khushal1995","date":"2026-07-24 07:06:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3620880,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3620880,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3620880,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3620892,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.15.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Dashboard with Media Library statistics, charts, and quick actions.","2":"Image Converter with single and bulk conversion workflows.","3":"Image Compression with quality controls and storage savings.","4":"Image Resize with before\/after preview.","5":"Duplicate Finder with manual cleanup tools.","6":"Image Usage Finder showing where images are used.","7":"Bulk Actions for rename, alt text, compress, resize, convert, and restore.","8":"CSV Reports for SEO, performance, accessibility, and storage.","9":"Settings page for compression, WebP, backups, and engine options."}},"plugin_section":[],"plugin_tags":[19029,273113,163,12497,233],"plugin_category":[50],"plugin_contributors":[252686],"plugin_business_model":[],"class_list":["post-344324","plugin","type-plugin","status-publish","hentry","plugin_tags-gd","plugin_tags-image-inspection","plugin_tags-images","plugin_tags-imagick","plugin_tags-media-library","plugin_category-media","plugin_contributors-khushal1995","plugin_committers-khushal1995"],"banners":{"banner":"https:\/\/ps.w.org\/khushal-image-audit-tools\/assets\/banner-772x250.png?rev=3620892","banner_2x":"https:\/\/ps.w.org\/khushal-image-audit-tools\/assets\/banner-1544x500.png?rev=3620880","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/khushal-image-audit-tools\/assets\/icon-128x128.png?rev=3620880","icon_2x":"https:\/\/ps.w.org\/khushal-image-audit-tools\/assets\/icon-256x256.png?rev=3620880","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Khushal Image Audit Tools provides a modular foundation for inspecting WordPress Media Library images locally.<\/p>\n\n<p>The plugin:<\/p>\n\n<ul>\n<li>Works completely offline.<\/li>\n<li>Sends no data to external services.<\/li>\n<li>Uses Imagick when available.<\/li>\n<li>Falls back to GD automatically.<\/li>\n<li>Converts JPEG, PNG, and WebP images individually or in safe bulk batches.<\/li>\n<li>Keeps protected original copies that can be restored from the Media Library.<\/li>\n<li>Compresses images in lossless or lossy background batches with storage reports.<\/li>\n<li>Resizes images by width, height, or percentage with before\/after previews.<\/li>\n<li>Finds duplicate images by filename, file size, dimensions, and exact file hash.<\/li>\n<li>Provides manual-only duplicate cleanup tools that never delete automatically.<\/li>\n<li>Finds image usage across posts, pages, products, custom post types, Gutenberg, and Elementor.<\/li>\n<li>Runs rename, alt, compression, resize, conversion, and restore actions on selected images.<\/li>\n<li>Streams SEO, performance, accessibility, media health, and storage CSV reports.<\/li>\n<li>Includes no telemetry, analytics, tracking, or licensing code.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>khushal-image-audit-tools<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate Khushal Image Audit Tools from the Plugins screen.<\/li>\n<li>Open <strong>Khushal Image Audit Tools<\/strong> from the WordPress admin sidebar.<\/li>\n<li>Use Dashboard, Converter, Compression, Resize, and the other tools from that menu.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20image%20data%20externally%3F\"><h3>Does this plugin send image data externally?<\/h3><\/dt>\n<dd><p>No. All processing is performed locally with WordPress Core, Imagick, or GD.<\/p><\/dd>\n<dt id=\"is%20imagick%20required%3F\"><h3>Is Imagick required?<\/h3><\/dt>\n<dd><p>No. Imagick is preferred when available and GD is used as the fallback.<\/p><\/dd>\n<dt id=\"where%20do%20i%20find%20the%20plugin%20settings%3F\"><h3>Where do I find the plugin settings?<\/h3><\/dt>\n<dd><p>Open <strong>Khushal Image Audit Tools \u2192 Image Settings<\/strong> in the WordPress admin sidebar.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20delete%20images%20automatically%3F\"><h3>Does this plugin delete images automatically?<\/h3><\/dt>\n<dd><p>No. Duplicate cleanup and other destructive actions are always manual and confirmation-based.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.15.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to Khushal Image Audit Tools (slug: khushal-image-audit-tools) to use a distinctive personal brand and avoid trademark conflict with \u201cFlowImage\u201d.<\/li>\n<li>Confirmed Settings API sanitize_callback on register_setting().<\/li>\n<\/ul>\n\n<h4>1.14.6<\/h4>\n\n<ul>\n<li>WordPress.org submission readiness: set author to Khushal Tank (@khushal1995), fixed installation steps, added Screenshots section, and blank index.php guards in asset folders.<\/li>\n<\/ul>\n\n<h4>1.14.5<\/h4>\n\n<ul>\n<li>Refreshed the Dashboard: gradient header, colored stat-card icons, \"fix it\" shortcuts on issue cards, and a tidier Quick Actions panel.<\/li>\n<\/ul>\n\n<h4>1.14.4<\/h4>\n\n<ul>\n<li>Cleared the last Plugin Check warnings around uncached direct writes and dynamic usage listing SQL.<\/li>\n<\/ul>\n\n<h4>1.14.3<\/h4>\n\n<ul>\n<li>Resolved all Plugin Check warnings with prepared identifier placeholders, documented nonce verification, scoped template variables, and intentional cleanup-query annotations.<\/li>\n<li>Added the required languages directory and removed the discouraged manual text-domain loader.<\/li>\n<\/ul>\n\n<h4>1.14.2<\/h4>\n\n<ul>\n<li>Fixed Plugin Check errors: added missing translators comments for i18n placeholders, and removed development-only .distignore and phpcs.xml.dist from the plugin package.<\/li>\n<\/ul>\n\n<h4>1.14.1<\/h4>\n\n<ul>\n<li>Fixed all Plugin Check PHP errors: WP_Filesystem for rename\/chmod\/rmdir, safe LIKE queries, in-memory JPEG stripper, and CSV stream phpcs compliance.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>Added the Khushal brand logo to every plugin page header.<\/li>\n<li>Redesigned Image Compression and Image Resize as clear step-by-step workflows with single\/bulk tabs.<\/li>\n<li>Added quick 1-2-3 usage guides to Duplicate Finder, Usage Finder, and Bulk Actions.<\/li>\n<li>Unified page headers, engine status badges, and empty states across all admin pages.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Redesigned Image Converter as a clear three-step workflow.<\/li>\n<li>Separated single and bulk conversion modes to prevent accidental library-wide actions.<\/li>\n<li>Added compatible image counts, format summaries, recommended settings, and proper empty states.<\/li>\n<li>Fixed hidden converter controls and empty previews appearing unexpectedly.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Added direct per-image filename and ALT text editing to Image Bulk Actions.<\/li>\n<li>Added automatic image selection while typing, clearer validation, and user-friendly action labels.<\/li>\n<li>Kept pattern rename, compression, resize, conversion, and restore as advanced bulk tools.<\/li>\n<\/ul>\n\n<h4>1.11.3<\/h4>\n\n<ul>\n<li>Fixed Image Bulk Actions to process selected images through AJAX batches instead of WP-Cron alone.<\/li>\n<li>Hardened bulk selection UI so Start stays disabled until images are selected and jobs resume reliably.<\/li>\n<\/ul>\n\n<h4>1.11.2<\/h4>\n\n<ul>\n<li>Fixed Image Usage Finder so scans run through AJAX batches instead of waiting on WP-Cron alone.<\/li>\n<li>Improved Gutenberg and Elementor usage detection and removed the unnecessary local-file requirement.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Moved every plugin page from Media into a dedicated Khushal Image Audit Tools top-level menu.<\/li>\n<li>Added backward-compatible redirects for previous Media submenu URLs.<\/li>\n<li>Updated page-specific asset loading and internal admin links for the new menu structure.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Added validated settings for compression, WebP, backups, upload scanning, and automatic conversion.<\/li>\n<li>Added configurable GD and Imagick engine selection with live local capability diagnostics.<\/li>\n<li>Added protected plugin data reset and asynchronous upload automation.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Added five secure, streamed CSV report generators.<\/li>\n<li>Added spreadsheet-safe SEO, performance, accessibility, and media health exports.<\/li>\n<li>Added live attachment storage, derivative size, savings, and backup reporting.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Added unified selected-image bulk actions with resumable progress tracking.<\/li>\n<li>Added safe bulk filename patterns and offline alt text generation.<\/li>\n<li>Integrated compression, resize, conversion, and protected restore services.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added Image Usage Finder with linked content reports.<\/li>\n<li>Added WordPress, Gutenberg, Elementor, WooCommerce, and custom post type detection.<\/li>\n<li>Added resumable background usage indexing and unused image filtering.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added duplicate image finder using filename, file size, dimensions, and file hash.<\/li>\n<li>Added exact and potential duplicate groups with manual keep, ignore, and trash cleanup.<\/li>\n<li>Added resumable background duplicate indexing with no automatic deletion.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added width, height, and percentage image resizing.<\/li>\n<li>Added aspect-ratio controls and server-generated before\/after previews.<\/li>\n<li>Added safe bulk resize jobs and original restoration.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added lossless and lossy JPEG, PNG, and WebP compression.<\/li>\n<li>Added quality controls, protected restore points, and compression reports.<\/li>\n<li>Added resumable WP-Cron bulk compression and storage-saving statistics.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added the production Image Converter with Imagick and GD engines.<\/li>\n<li>Added single and bulk conversion with progress and error reporting.<\/li>\n<li>Added protected original backups, restore support, and Media Library integration.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial production architecture.<\/li>\n<\/ul>","raw_excerpt":"Secure, lightweight, offline image inspection for the WordPress Media Library.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/344324","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=344324"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/khushal1995"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=344324"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=344324"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=344324"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=344324"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=344324"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=344324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}