Incod Image Dimension Manager
Incod Image Dimension Manager is an original plugin developed, owned and maintained by inCOD (ideagrafica). "Incod" is the author's own brand: the plugin has no affiliation with, endorsement from, or connection to any other company or project of a similar name.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/ideagrafica/incod-image-dimension-manager/archive/refs/heads/main.zipA free WordPress plugin that resizes, fits and unifies every image to fixed dimensions with a letterbox canvas, hard crop or proportional scale — no limits, and full support for all Custom Post Types.
Description
Incod Image Dimension Manager unifies every image on your site to fixed dimensions, ensuring a consistent look on every page, archive and gallery: featured images, galleries, WooCommerce products and any Custom Post Type you select.
Incod Image Dimension Manager is an original plugin developed, owned and maintained by inCOD (ideagrafica). "Incod" is the author's own brand: the plugin has no affiliation with, endorsement from, or connection to any other company or project of a similar name.
Key Features
- Three resize modes – Letterbox / Canvas, Hard Crop with a focal point, and Proportional Scale.
- Customizable HEX fill canvas (color picker) or transparent (PNG/WebP), always centered.
- Dynamic detection of all public Custom Post Types, WooCommerce included, with multiple selection.
- Auto-resize on upload – new images are fitted automatically when uploaded.
- Asynchronous Bulk Resize via AJAX: configurable batches, progress bar, percentage, counters, elapsed time and remaining-time estimate.
- Timeout protection – time budget per request, adaptive throttle between batches and a mutual-exclusion lock: the server is never saturated.
- Pause, Resume and Cancel at any moment, with no limit on the number of images.
- Optional backup of the originals with batched, progressive restore.
- Imagick engine with automatic GD fallback through
wp_get_image_editor(). - Translation ready – text domain
incod-image-dimension-managerwith a.potfile in/languages.
Resize Modes
- Letterbox / Canvas Padding – fits the image inside the target dimensions without cropping and fills the empty space with a customizable (HEX color picker) or transparent canvas (PNG and WebP), with automatic centering.
- Hard Crop – crops the image to fill the target dimensions completely, with a selectable focal point (Center, Top, Bottom, Left, Right).
- Proportional Scale – scales the image proportionally without adding a canvas and without destructive cropping.
- Option to prevent upscaling of images smaller than the target, configurable JPEG quality (1–100), and automatic skip of images that already match the target.
Custom Post Types
- Dynamic detection of every registered public Custom Post Type (WooCommerce Products, posts, pages, portfolios, custom CPTs).
- Multiple selection through checkboxes in the settings panel.
- Support for Featured Images, child attachments, WooCommerce product galleries (
_product_image_gallery) and product variation images. - Explicit choice between the whole Media Library and only the images used by the selected post types.
Bulk Processing
- Batch processing via AJAX with a smooth progress bar, percentage, counters, elapsed time and remaining-time estimate.
- Configurable batches of 1 to 50 images per request, with no limit on the total number of images.
- Timeout protection: every request works within a dedicated time budget; images not yet processed are deferred to the next request without losses or errors.
- Adaptive throttle: the pause between batches adapts to the load just processed, so the server is never saturated.
- Mutual-exclusion lock: only one processing session at a time, even with multiple tabs open.
- PHP timeout and memory-limit increase applied only to the heavy AJAX requests that need it; light requests and the rest of the site are never affected.
- Optional backup of the original files with batched restore (up to 25 folders or a time budget per request).
Security
current_user_can( 'manage_options' )checks on every screen and AJAX endpoint.- CSRF protection with a nonce on every request.
- Input sanitization and systematic output escaping.
- PHP namespace and modular class architecture.
- Clean removal of options, transients and backup folders through
uninstall.php.
Requirements
- WordPress 5.0 or newer (tested up to 7.1)
- PHP 7.4 or newer
- Imagick or GD (at least one of them, almost always already present)
- No external dependencies or third-party services
Installation
- Upload the
incod-image-dimension-managerfolder to/wp-content/plugins/(or install the plugin as a zip). - Activate the plugin through the Plugins menu in WordPress.
- Go to Incod Image Dimension Manager → Settings to set the target dimensions, mode and processing scope.
- Open Incod Image Dimension Manager → Bulk Resize to process your existing images.
Frequently Asked Questions
Are the original images lost?
No. If you enable "Keep a backup of the originals", every file is copied to wp-content/uploads/idim-backups/ before being overwritten and can be restored from the Bulk Resize screen.
What happens if the server does not have Imagick?
The plugin uses GD automatically. The engine is chosen through the native wp_get_image_editor() function.
Is there a limit to the number of images? No. The bulk process works in configurable batches (1–50 images per request) and has no quantitative limit. Every request has a dedicated time budget: images not yet processed are simply deferred to the next request.
Can the bulk process get stuck or saturate the server? No. Every batch is stopped when the time budget is reached, the pause between batches adapts to the processed load (adaptive throttle) and a mutual-exclusion lock guarantees that only one session works at a time. If a request times out, the plugin retries it automatically.
Can I close the page during the bulk process? You can, but it is better to keep it open: the processing loop lives in the browser. The session state is stored on the server anyway and is shown the next time you open the Bulk Resize screen.
Does it support WooCommerce? Yes. The WooCommerce product is detected automatically among the Custom Post Types, and both the featured image and the product gallery are processed.
Screenshots
- Settings panel with dimensions, modes and Custom Post Type selection.
- Bulk Resize with progress bar, statistics and pause/resume controls.
- Settings panel with post types and automation options.
Changelog
1.0.0
- First public release.
- Three modes: Letterbox/Canvas (HEX or transparent), Hard Crop with focal point and Proportional Scale.
- Dynamic detection of all public CPTs with multiple selection, whole Media Library, Featured Images, galleries and WooCommerce products.
- Auto-resize when new images are uploaded.
- Asynchronous Bulk Resize via AJAX with configurable batches, progress bar, percentage, counters, elapsed time and remaining-time estimate.
- Per-request time budget, adaptive throttle and mutual-exclusion lock against timeouts and server saturation.
- Pause, Resume and Cancel, error log and stored session state.
- Optional backup of the originals with batched restore.
- Imagick processing with GD fallback, complete security and translations (
.pot). - Explicit choice between the whole Media Library and only the images used by the selected post types.
- Featured images and product galleries are also in scope, including WooCommerce variations.
- Fixed the "Could not calculate resized image dimensions" error on upscales and images that already match the target.
Links
- WordPress.org: https://wordpress.org/plugins/incod-image-dimension-manager/
- Plugin URI: https://incod.it/incod-image-dimension-manager/
License
GPLv2 or later — https://www.gnu.org/licenses/gpl-2.0.html