Title: Incod Image Dimension Manager
Author: Marco De Sangro
Published: <strong>October 12, 2026</strong>
Last modified: October 12, 2026

---

Search plugins

![](https://ps.w.org/incod-image-dimension-manager/assets/banner-772x250.png?rev
=3740745)

![](https://ps.w.org/incod-image-dimension-manager/assets/icon-256x256.png?rev=3741072)

# Incod Image Dimension Manager

 By [Marco De Sangro](https://profiles.wordpress.org/ideagrafica/)

[Download](https://downloads.wordpress.org/plugin/incod-image-dimension-manager.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/incod-image-dimension-manager/#description)
 * [Reviews](https://wordpress.org/plugins/incod-image-dimension-manager/#reviews)
 *  [Installation](https://wordpress.org/plugins/incod-image-dimension-manager/#installation)
 * [Development](https://wordpress.org/plugins/incod-image-dimension-manager/#developers)

 [Support](https://wordpress.org/support/plugin/incod-image-dimension-manager/)

## Description

**Incod Image Dimension Manager** unifies every image on your site to fixed dimensions,
ensuring a consistent look on every page, archive and gallery.

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()`.
 * **Complete security**: capabilities, nonces, sanitization and escaping on every
   input and output.
 * **Translatable**: text domain `incod-image-dimension-manager` and a `.pot` file
   in the `/languages` folder.

#### 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.
 * **JPEG quality** configurable from 1 to 100.
 * Images that **already match** the target are skipped automatically, without rewriting
   the file.

#### 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**.

#### Automation and bulk processing

 * **Auto-resize on upload**: new images are resized automatically when uploaded(
   hook `wp_generate_attachment_metadata`), with a recursion guard.
 * **Asynchronous Bulk Resize**: 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.
 * **Pause**, **Resume** and **Cancel**, with an error log (last 50 entries) and
   a stored, retrievable session state.
 * PHP timeout and memory-limit increase applied only to the heavy AJAX requests
   that need it (queue, batch, restore); 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 and standards

 * `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.
 * Processing through `wp_get_image_editor()`: uses Imagick when available, with
   automatic GD fallback.
 * `uninstall.php` for a clean removal of options, transients and backup folders.

#### Requirements and compatibility

 * 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.

## Screenshots

[⌊Settings panel with dimensions, modes and Custom Post Type selection.⌉⌊Settings
panel with dimensions, modes and Custom Post Type selection.⌉[

Settings panel with dimensions, modes and Custom Post Type selection.

[⌊Bulk Resize with progress bar, statistics and pause/resume controls.⌉⌊Bulk Resize
with progress bar, statistics and pause/resume controls.⌉[

Bulk Resize with progress bar, statistics and pause/resume controls.

[⌊Settings panel with post types and automation options.⌉⌊Settings panel with post
types and automation options.⌉[

Settings panel with post types and automation options.

[[

## Installation

 1. Upload the `incod-image-dimension-manager` folder to your site’s `/wp-content/plugins/`
    directory (or install the plugin as a zip).
 2. Activate the plugin from the WordPress “Plugins” screen.
 3. Go to **Incod Image Dimension Manager  Settings** to set the target dimensions,
    mode and processing scope.
 4. Open **Incod Image Dimension Manager  Bulk Resize** to process your existing images.

## FAQ

### 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.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Incod Image Dimension Manager” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Marco De Sangro ](https://profiles.wordpress.org/ideagrafica/)
 *   [ incod ](https://profiles.wordpress.org/incod/)

[Translate “Incod Image Dimension Manager” into your language.](https://translate.wordpress.org/projects/wp-plugins/incod-image-dimension-manager)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/incod-image-dimension-manager/),
check out the [SVN repository](https://plugins.svn.wordpress.org/incod-image-dimension-manager/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/incod-image-dimension-manager/)
by [RSS](https://plugins.trac.wordpress.org/log/incod-image-dimension-manager/?limit=100&mode=stop_on_copy&format=rss).

## 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.

## Meta

 *  Version **1.0.0**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [bulk resize](https://wordpress.org/plugins/tags/bulk-resize/)[crop](https://wordpress.org/plugins/tags/crop/)
   [custom post type](https://wordpress.org/plugins/tags/custom-post-type/)[image resize](https://wordpress.org/plugins/tags/image-resize/)
 *  [Advanced View](https://wordpress.org/plugins/incod-image-dimension-manager/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/incod-image-dimension-manager/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/incod-image-dimension-manager/reviews/)

## Contributors

 *   [ Marco De Sangro ](https://profiles.wordpress.org/ideagrafica/)
 *   [ incod ](https://profiles.wordpress.org/incod/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/incod-image-dimension-manager/)