=== Image Format Converter ===
Contributors: sadathimel, themedot
Plugin URI: https://github.com/sadathimel/image-format-converter
Tags: image converter, jpg, png, webp, avif
Requires at least: 5.0
Tested up to: 6.8
Stable tag: 1.1.0
Requires PHP: 7.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Convert images between JPG, PNG, WebP, and AVIF in the WordPress admin with a modern, AJAX-powered UI. Built-in support for bulk conversions, image resizing, EXIF metadata stripping, and live storage savings stats. Requires GD or Imagick.

== Description ==

Image Format Converter is a powerful, lightweight administrative tool that allows you to easily convert images in your WordPress Media Library to modern formats like WebP and AVIF, as well as standard PNG and JPG formats. 

By leveraging your server's native PHP image processing libraries (GD or Imagick), this plugin converts images with high quality and optimal compression. With the newly added AJAX-powered engine, you can now select and convert multiple images at once, watch their progress in real-time with an animated progress bar, and see exactly how many kilobytes and storage percentage you saved.

**Features:**
* **AJAX Bulk Conversion:** Select multiple images from the Media Library and convert them sequentially. Prevents script timeouts on large libraries.
* **Proportional Resizing:** Set optional maximum width or height constraints to scale down high-resolution images during conversion.
* **Media Library Row Action:** Convert images directly from the Media Library list view (`upload.php`) with a quick "Convert Format" link.
* **Size Savings Calculator:** Shows original size, converted size, and total storage savings in real-time.
* **Metadata Control (EXIF Stripping):** Clean up extra file space by stripping camera EXIF profiles and color data when using Imagick.
* **Auto-Delete Original:** Clean up your server automatically by deleting the original image file and database attachment after a successful conversion.
* **Flexible settings:** Configure JPEG quality, PNG compression levels, WebP/AVIF quality, and toggle Media Library registration.
* **Server Diagnostics:** View library status (GD, Imagick, WebP, AVIF) at a glance, with step-by-step instructions to enable missing libraries.

Access all features by going to **Media > Image Converter**.

== Installation ==

1. Upload the `image-format-converter` folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **Media > Image Converter** to start converting images, customize settings, or check your server configuration.

== Frequently Asked Questions ==

= Where do converted images appear? =
Converted images are saved in your uploads folder (e.g., `wp-content/uploads/2025/09/`) with "_converted" appended (e.g., `image_converted.png`). If enabled (default), they appear in **Media > Library**. The success notice shows "Image convert complete" with links to the file and Media Library entry.

= Why don’t I see the converted file? =
Check the success/error notice on **Media > Image Converter**. Ensure GD or Imagick is enabled (see library status). Verify the uploads folder is writable (755/644 permissions). Check **Media > Library**.

= What do I do if I see "GD: Not Available | Imagick: Not Available"? =
Click the "How to Enable GD and Imagick" button for instructions. Summary:
- **Shared Hosting**: Enable "gd" or "imagick" in cPanel/Site Tools under PHP Extensions. Contact support if needed.
- **Local (XAMPP/WAMP/MAMP)**: Edit `php.ini` to uncomment `extension=gd` or add `extension=imagick` after installing ImageMagick.
- **VPS (Ubuntu/CentOS)**: Install `php-gd` or `php-imagick`, restart Apache.
- **Cloud (AWS, DigitalOcean)**: Install extensions or contact support.
- **Verify**: Use **Tools > Site Health > Info > Server** or create `info.php` with `<?php phpinfo(); ?>`.

= Does it support AVIF/WebP? =
Yes, if GD (PHP 8.1+ for AVIF, 7.1+ for WebP) or Imagick supports them. Check the library status on the conversion page.

= Why don’t the toggle buttons work? =
- Open Developer Tools (F12 > Console) for errors like "jQuery is not defined".
- Ensure `wp-content/plugins/image-format-converter/admin/js/imgfmt-admin.js` exists (permissions 644).
- Deactivate other plugins and switch to a default theme (e.g., Twenty Twenty-Five).
- Clear browser cache or test in incognito mode.
- Enable `WP_DEBUG` in `wp-config.php` and check `wp-content/debug.log`.
- Verify jQuery loads (F12 > Network > JS).
- In XAMPP, ensure Apache is running and file paths are correct.
- Contact support with console errors.

= Can I convert multiple images? =
Yes, you can select multiple images using the media uploader. The plugin will convert them sequentially using AJAX and display a live progress bar.


== Support the Developer ==

Enjoying CopyBlocker Pro? Support development by buying the author a coffee:
☕ [Buy Me a Coffee](https://buymeacoffee.com/5adat)

== Screenshots ==

1. **Media > Image Converter** with modern conversion form, toggle buttons, and success notice.
2. **Media > Image Converter** with GD/Imagick instructions visible.

== Changelog ==

= 1.1.0 =
* Added AJAX-powered sequential image conversion for single and bulk files.
* Added support for selecting multiple images in the media library uploader.
* Added live conversion progress wizard with an animated progress bar.
* Added overall statistics summary for bulk processing (total original, converted size, and storage percentage saved).

= 1.0.3 =
* Added quick "Convert Format" action links directly in the Media Library list view.
* Added setting to strip EXIF/IPTC image metadata when using Imagick.

= 1.0.2 =
* Added optional image resizing and dimensions control.
* Added size reduction and storage savings statistics calculator in success notices.
* Added optional "Delete original image after conversion" setting.
* Fixed admin notice display bug where messages did not persist across redirects.

= 1.0.1 =
* Added success message "Image convert complete" after conversion.
* Added AVIF format support (requires PHP 8.1+ with GD/Imagick AVIF enabled).
* Updated library check and UI to include AVIF.
* Updated prefix to `imgfmt` for uniqueness, per WordPress.org review.
* Set Plugin URI to public GitHub repository.
* Fixed input validation for security compliance.
* Ensured compatibility with WordPress 6.8.

= 1.0.0 =
* Initial release with modern UI, collapsible settings, and GD/Imagick instructions.

== Upgrade Notice ==

= 1.1.0 =
Introduces AJAX-powered sequential image conversion, multi-select support, and an animated progress bar with bulk savings statistics.

= 1.0.3 =
Adds a "Convert Format" link under images in the Media Library list view, and a setting to strip EXIF metadata to save extra storage space in Imagick.

= 1.0.2 =
Adds image resizing options, file size savings statistics, and an option to automatically delete original files after conversion.

= 1.0.1 =
Added AVIF support and "Image convert complete" message. Ensure AVIF is enabled in GD/Imagick (PHP 8.1+). Compatible with WordPress 6.8.
Updated to use unique `imgfmt` prefix, public GitHub URI, and improved security. Compatible with WordPress 6.8.

= 1.0.0 =
Initial release. No upgrades needed.