Add-on Documentation from JCOGS Design

ConfigurationLast updated: 7 November 2025

Image Pro can be used immediately after installation with sensible defaults. However, the Control Panel provides extensive configuration options to tailor the add-on to your specific needs. Settings can also be overridden on a per-tag basis using parameters.

Configuration Options

Image Pro settings can be configured in three ways, listed here in order of precedence (highest to lowest):

  1. Tag Parameters (highest priority) โ€“ Override any default by specifying parameters within individual Image Pro tags
  2. Config.php Overrides (high priority) โ€“ Define settings in your EE config.php file to override CP settings for multi-environment management
  3. Control Panel Settings (base priority) โ€“ Set site-wide defaults through the CP interface

This means tag parameters always win, config.php settings override CP settings, and CP settings provide the baseline defaults above the hardcoded system defaults.

Control Panel Sections

Image Pro's configuration is organised into several panels within the Control Panel, each addressing different aspects of the add-on's operation:

Cache Management

Monitor and manage your processed image cache across multiple named connections. View cache statistics, audit cache contents, clear caches, and configure cache behaviour including duration, auto-management, and storage locations (local filesystems or cloud services like AWS S3).

Preset Management

Create, edit, and manage reusable parameter presets. Define complex image processing configurations once and apply them consistently throughout your templates using the preset parameter.

Image Processing Defaults

Set default values for image manipulation operations including output formats, quality settings, background colours, lazy loading options, fallback images, and operational limits for source image processing.

System Settings

Configure how Image Pro integrates with ExpressionEngine, including add-on enable/disable controls, action link settings, and debugging options.

Advanced Settings

Fine-tune Image Pro's behaviour for specialised use cases. These settings control browser capability checking, class/style consolidation, cache filename handling, PHP resource limits, and other advanced options. Most users won't need to modify these settings.

Fine-tune Image Pro's behaviour for specialised use cases. These settings control browser capability checking, class/style consolidation, cache filename handling, PHP resource limits, and other advanced options. Most users won't need to modify these settings.

Cache Management

The Cache Management panel provides comprehensive control over Image Pro's processed image cache system. Unlike the legacy JCOGS Image add-on (which supports a single storage adapter), Image Pro allows you to configure and manage multiple named connections to different storage locations simultaneously.

Overview

Image Pro's cache management system allows you to:

  • Monitor cache statistics across all named connections
  • Configure multiple named connections to local or cloud storage
  • Audit and clear cache contents for specific connections or cache directories
  • Set default cache duration and auto-management behaviour
  • Switch between connections dynamically using the connection parameter in templates

Named Connections

Named connections allow you to define multiple storage locations for both source images and processed image cache. Each connection has a unique name and can point to either a local filesystem or a cloud storage service (AWS S3, Cloudflare R2, DigitalOcean Spaces, etc.).

Key Benefits

  • Flexibility โ€“ Store source images on one connection, processed cache on another
  • Multiple Cloud Services โ€“ Configure connections to different cloud providers simultaneously
  • Testing & Staging โ€“ Use different connections for development, staging, and production environments
  • Performance Optimisation โ€“ Choose optimal storage locations based on geographic distribution or cost
  • Template Control โ€“ Switch connections per-tag using the connection parameter

Connection Types

Image Pro supports the following connection types:

  • Local โ€“ Filesystem storage on your web server
  • AWS S3 โ€“ Amazon Simple Storage Service
  • Cloudflare R2 โ€“ Cloudflare's S3-compatible object storage
  • DigitalOcean Spaces โ€“ DigitalOcean's object storage service

Creating a New Connection

  1. Navigate to Cache Management in the Image Pro Control Panel
  2. Click Add New Connection
  3. Provide a unique connection name (alphanumeric, underscores allowed)
  4. Select the connection type from the dropdown
  5. Complete the configuration fields specific to your chosen type
  6. Click Save to validate and store the connection

Default Connection

One connection must be designated as the default connection. This connection is used when no connection parameter is specified in an Image Pro tag. The default connection is typically a local filesystem connection for optimal performance.

Local Connection Configuration

Local connections store files on your web server's filesystem.

Required Settings:
  • Connection Name โ€“ Unique identifier for this connection
  • Default Cache Directory โ€“ Path relative to web root where processed images are stored (e.g., images/jcogs_img_pro/cache)
Optional Settings:
  • Use Full URLs โ€“ Generate absolute URLs instead of relative paths to processed images
  • Image Path Prefix โ€“ Add a CDN or custom prefix to image URLs (only available when "Use Full URLs" is disabled)

Cloud Connection Configuration

Cloud connections require authentication credentials and endpoint configuration. The setup process is similar across all cloud providers but with provider-specific details.

AWS S3 Configuration

Amazon S3 is a widely-used cloud storage service offering excellent performance and reliability.

Required Settings:
  • Connection Name โ€“ Unique identifier
  • Access Key ID โ€“ AWS IAM access key
  • Secret Access Key โ€“ AWS IAM secret key
  • Region โ€“ AWS region (e.g., us-east-1, eu-west-2)
  • Bucket Name โ€“ S3 bucket for storing images
  • Path Prefix โ€“ Optional subdirectory within bucket (e.g., processed-images/)
Optional Settings:
  • Custom Endpoint โ€“ For S3-compatible services
  • Cache Control Headers โ€“ Set browser caching behaviour

Cloudflare R2 Configuration

Cloudflare R2 offers S3-compatible storage with no egress fees, making it cost-effective for high-traffic sites.

Required Settings:
  • Connection Name โ€“ Unique identifier
  • Account ID โ€“ Cloudflare account ID
  • Access Key ID โ€“ R2 API access key
  • Secret Access Key โ€“ R2 API secret key
  • Bucket Name โ€“ R2 bucket name
  • Public URL โ€“ Custom domain or R2.dev URL for public access

DigitalOcean Spaces Configuration

DigitalOcean Spaces provides S3-compatible object storage integrated with DigitalOcean infrastructure.

Required Settings:
  • Connection Name โ€“ Unique identifier
  • Access Key โ€“ Spaces access key
  • Secret Key โ€“ Spaces secret key
  • Region โ€“ Spaces region (e.g., nyc3, sfo2)
  • Space Name โ€“ Name of your Space
  • CDN Endpoint โ€“ Optional CDN URL for faster delivery

Cache Statistics

The Cache Management panel displays real-time statistics for each named connection:

  • Connection Name โ€“ Identifier and type (Local/Cloud)
  • Cache Directories โ€“ Number of distinct cache directories in use
  • Total Images โ€“ Count of processed images stored
  • Total Size โ€“ Disk space consumed by processed images
  • Last Audit โ€“ Timestamp of most recent cache audit
  • Status โ€“ Connection validation status (Active/Error)

Statistics are updated each time you visit the Cache Management panel and reflect the current state of the cache log database.

Cache Controls

Each connection may have multiple cache directories created via the cache_dir parameter in templates. The Cache Management panel lists all directories in use and provides controls for each:

Cache Audit

Running a cache audit removes processed images that have exceeded their cache duration (set when the image was processed). This operation:

  • Frees disk space by removing expired images
  • Synchronises the cache log database with actual filesystem contents
  • Does not affect site functionality (expired images are regenerated when next requested)
  • Runs automatically based on the audit interval setting (see Advanced Settings)
Cache Clear

Clearing a cache directory removes all processed images from that location. This operation:

  • Frees significant disk space
  • Forces regeneration of all processed images on next request
  • May temporarily impact site performance as cache rebuilds
  • Useful when troubleshooting cache issues or after major configuration changes

Use cache clear sparingly โ€“ prefer cache audit for routine maintenance.

Cache Settings

Default Cache Duration

Set the default lifetime (in seconds) for processed images before they're considered expired. This setting applies to all connections unless overridden by the cache parameter in a tag.

Recommended Values:
  • 2678400 (31 days) โ€“ Default, balances cache efficiency with automatic cleanup
  • -1 โ€“ Perpetual cache (images never expire, similar to CE Image behaviour)
  • 0 โ€“ Cache disabled (not recommended for production)
  • 604800 (7 days) โ€“ Aggressive cleanup for sites with frequently changing images

Enable Cache Auto-Management

When enabled, Image Pro monitors the EE File Manager for changes to source images. If a source image is modified, all processed versions are automatically removed from the cache to ensure users see the updated image.

Important Notes:
  • Template Caching โ€“ If using EE Template Caching or third-party cache systems (Speedy, Rocket), disable auto-management to avoid inconsistencies
  • Performance โ€“ Auto-management adds minimal overhead to File Manager operations
  • Scope โ€“ Only affects images managed through EE File Manager, not remote or arbitrary file paths

Best Practices

Connection Strategy

  • Default Local โ€“ Use local filesystem as default connection for best performance
  • Cloud for Scale โ€“ Configure cloud connections for high-traffic sites or CDN integration
  • Separate Source and Cache โ€“ Store source images on one connection, processed cache on another for optimal organisation
  • Naming Convention โ€“ Use descriptive names (e.g., aws_s3_production, local_dev) for clarity

Cache Maintenance

  • Regular Audits โ€“ Allow automatic audits to run (default: weekly) to maintain cache efficiency
  • Monitor Size โ€“ Check cache statistics periodically to ensure disk usage remains reasonable
  • Clear on Config Changes โ€“ Clear cache after major configuration changes to ensure consistency
  • Backup Connections โ€“ Document cloud connection configurations for disaster recovery

Usage Notes

Creating New Connections:
  • Image Pro will attempt to create the cache directory if it doesn't exist
  • Ensure your EE base_path configuration is set correctly
  • Directory paths should be relative to your web root

Usage Notes

Cloud Connection Setup: Important Considerations:
  • Performance โ€“ Cloud storage operations are slower than local filesystem access. Initial image processing may take longer, but caching mitigates this for subsequent requests.
  • Permissions โ€“ Ensure your cloud credentials have appropriate read/write permissions for the specified bucket/space
  • Security โ€“ Use IAM roles with minimal required permissions. Never commit credentials to version control
  • Configuration Resources โ€“ Refer to EE7 Cloud Files documentation for detailed setup instructions
  • Validation โ€“ Image Pro validates connection settings when saved. Only validated connections appear in the connection selector

Usage Notes

Migration from JCOGS Image

When Image Pro detects an existing JCOGS Image installation, it automatically:

  • Creates a copy of any configured legacy connection as a new named connection
  • Configures separate cache directories to avoid conflicts (e.g., images/jcogs_img_pro/cache vs images/jcogs_img/cache)
  • Preserves legacy cache settings where applicable
  • Allows both add-ons to coexist during migration

This ensures you can test Image Pro thoroughly before fully transitioning from the legacy add-on.

Usage Notes

Troubleshooting

Connection Validation Failures

If a connection fails validation:

  • Verify credentials are correct and haven't expired
  • Check bucket/space exists and is accessible
  • Confirm IAM permissions include necessary read/write operations
  • Test network connectivity to cloud provider endpoints
  • Review EE system logs for detailed error messages

Slow Image Processing

If image processing seems slow:

  • Check if using cloud storage (inherently slower than local)
  • Verify cache is enabled and working (check cache statistics)
  • Review cache_dir parameter usage (too many directories impacts performance)
  • Consider using local connection for processed cache with cloud source images

Missing Processed Images

If processed images aren't appearing:

  • Confirm connection is validated and active
  • Check file permissions on local cache directories
  • Verify connection parameter matches an existing connection name
  • Review cache log for error entries
  • Enable debugging to see detailed processing information

Preset Management

The Preset Management panel allows you to create, edit, and manage reusable parameter configurations. Presets are a Pro-exclusive feature that streamline template development by letting you define complex image processing configurations once and apply them consistently throughout your site.

Overview

Image Pro's preset system allows you to:

  • Define reusable parameter combinations with descriptive names
  • Apply consistent image processing across multiple templates
  • Override individual preset parameters on a per-tag basis
  • Maintain centralised control over common image configurations
  • Simplify template code by replacing multiple parameters with a single preset parameter

Understanding Presets

A preset is a named collection of Image Pro parameters that can be applied to any Image Pro tag using the preset parameter. When you apply a preset, all parameters defined in that preset are used as if you had specified them directly in the tag.

Key Benefits

  • Consistency โ€“ Ensure identical processing for related images across your site
  • Maintainability โ€“ Update configurations in one place rather than editing multiple templates
  • Readability โ€“ Replace lengthy parameter lists with meaningful preset names
  • Reusability โ€“ Define once, use anywhere in your templates
  • Flexibility โ€“ Override individual preset parameters when needed for specific cases

How Presets Work

When you specify a preset in an Image Pro tag, the add-on loads the preset's parameters and merges them with any parameters you've specified directly in the tag. Direct tag parameters always take precedence over preset parameters, allowing you to override specific settings whilst maintaining the preset's other configurations.

Example:

{exp:jcogs_img_pro:single 
    src="{product_image}" 
    preset="product_thumbnail"
    width="250"
}

In this example, all parameters from the product_thumbnail preset are applied, except width which is overridden to 250 pixels.

Creating a Preset

To create a new preset:

  1. Navigate to Preset Management in the Image Pro Control Panel
  2. Click Create New Preset
  3. Enter a unique preset name (alphanumeric characters, underscores, and hyphens only)
  4. Optionally add a description explaining the preset's purpose
  5. Define parameters using the parameter builder or JSON editor
  6. Click Save Preset to store the configuration

Preset Naming Conventions

Choose descriptive names that indicate the preset's purpose and context:

  • Good: blog_hero_banner, product_thumbnail, gallery_lightbox
  • Avoid: preset1, test, my_preset

Consider using a naming pattern like {context}_{size_or_purpose} for consistency.

Defining Parameters

Image Pro provides two methods for defining preset parameters: a visual parameter builder and a JSON editor for advanced users.

Using the Parameter Builder

The parameter builder provides a form-based interface for common parameters:

  • Dimensions โ€“ Width, height, and scaling behaviour
  • Format โ€“ Output format (JPG, PNG, WebP, AVIF) and quality settings
  • Processing โ€“ Crop, resize mode, background colour, filters
  • Output โ€“ Lazy loading, preload priority, CSS classes, attributes
  • Cache โ€“ Cache directory, duration, connection

Select parameters from the available options and configure their values. The builder validates inputs and provides helpful descriptions for each parameter.

Using the JSON Editor

For advanced configurations or when working with parameters not available in the builder, use the JSON editor. Define parameters as a JSON object:

{
    "width": 800,
    "height": 600,
    "mode": "crop",
    "format": "webp",
    "quality": 85,
    "lazy": "y",
    "class": "img-fluid rounded",
    "cache_dir": "products"
}

The JSON editor supports all Image Pro parameters, including Pro-exclusive options like face_detection_quality and advanced filter configurations.

Available Parameters

Presets support all Image Pro parameters except src (source image path) and preset (to prevent circular references). Refer to the Parameters documentation for a complete list of available options.

Managing Presets

Editing a Preset

To modify an existing preset:

  1. Locate the preset in the Preset Management list
  2. Click Edit
  3. Modify the preset name, description, or parameters
  4. Click Save Changes

Changes to a preset affect all templates using that preset immediately (subject to template caching).

Duplicating a Preset

To create a new preset based on an existing one:

  1. Locate the preset you want to duplicate
  2. Click Duplicate
  3. Enter a new preset name
  4. Modify parameters as needed
  5. Click Save Preset

Duplication is useful when creating variations of similar configurations.

Deleting a Preset

To remove a preset:

  1. Locate the preset in the Preset Management list
  2. Click Delete
  3. Confirm the deletion

Warning: Deleting a preset does not affect existing processed images in the cache, but templates using the deleted preset will fall back to default parameters or explicitly specified tag parameters.

Using Presets in Templates

Basic Usage

Apply a preset using the preset parameter:

{exp:jcogs_img_pro:single 
    src="{featured_image}" 
    preset="hero_banner"
}

Overriding Preset Parameters

Override specific preset parameters by specifying them directly in the tag:

{exp:jcogs_img_pro:single 
    src="{featured_image}" 
    preset="hero_banner"
    width="1400"
    quality="90"
}

In this example, the hero_banner preset is applied, but width and quality are overridden with custom values.

Combining with Named Attributes

Presets work seamlessly with named attributes for complex configurations:

{exp:jcogs_img_pro:single 
    src="{featured_image}" 
    preset="product_detail"
    attr:data-product-id="{entry_id}"
    attr:data-variant="{variant_sku}"
}

Preset Parameter Precedence

When parameters are defined in multiple places, Image Pro applies them in this order (highest to lowest priority):

  1. Direct Tag Parameters โ€“ Parameters specified in the Image Pro tag
  2. Preset Parameters โ€“ Parameters defined in the preset
  3. Config.php Overrides โ€“ Settings defined in EE config.php
  4. Control Panel Settings โ€“ Site-wide defaults from CP configuration

Best Practices

Preset Strategy

  • Purpose-Driven Names โ€“ Name presets based on their purpose and context, not technical details
  • Avoid Over-Specification โ€“ Only define parameters that differ from sensible defaults
  • Document Complex Presets โ€“ Use the description field to explain non-obvious configurations
  • Group Related Presets โ€“ Use consistent naming patterns for related presets (e.g., blog_thumbnail, blog_hero, blog_inline)
  • Limit Preset Count โ€“ Create presets for truly reusable configurations, not one-off variations

Parameter Selection

  • Core Settings Only โ€“ Include parameters that define the preset's essential characteristics
  • Dimension Guidelines โ€“ Specify exact dimensions for fixed-size images, use aspect ratios for flexible layouts
  • Format Choices โ€“ Consider browser compatibility when specifying advanced formats like WebP or AVIF
  • Performance Settings โ€“ Include lazy loading and preload settings appropriate to the preset's typical usage

Maintenance

  • Regular Review โ€“ Periodically audit presets to identify unused or outdated configurations
  • Version Control โ€“ Export preset configurations for backup and version control
  • Testing Changes โ€“ Test preset modifications on staging before updating production configurations
  • Clear Cache After Changes โ€“ Clear relevant cache directories after significant preset modifications to ensure consistency

Usage Notes

Preset Performance Considerations:
  • Presets are loaded from the database on each page request where they're used
  • Image Pro caches preset configurations internally to minimise database queries
  • Using many different presets on a single page has minimal performance impact
  • Preset application happens before cache lookup, so cached images benefit from preset efficiency

Usage Notes

Import and Export:

Image Pro supports importing and exporting presets for sharing between sites or maintaining backups:

  • Export โ€“ Click Export All Presets to download a JSON file containing all preset configurations
  • Export Single โ€“ Use the Export action on individual presets to download their configuration
  • Import โ€“ Click Import Presets and upload a previously exported JSON file
  • Conflict Resolution โ€“ During import, choose whether to overwrite existing presets with matching names or skip them

Usage Notes

Common Preset Examples:

Here are some practical preset configurations for common use cases:

Blog Hero Banner

{
    "width": 1200,
    "height": 600,
    "mode": "crop",
    "format": "webp",
    "quality": 85,
    "lazy": "n",
    "preload_critical": "y",
    "class": "hero-image",
    "cache_dir": "blog_heroes"
}

Product Thumbnail

{
    "width": 300,
    "height": 300,
    "mode": "crop",
    "format": "jpg",
    "quality": 80,
    "lazy": "y",
    "class": "product-thumb img-fluid",
    "cache_dir": "products"
}

Gallery Lightbox

{
    "width": 1920,
    "height": 1080,
    "mode": "fit",
    "format": "jpg",
    "quality": 90,
    "lazy": "n",
    "class": "gallery-image",
    "attr:data-lightbox": "gallery",
    "cache_dir": "gallery"
}

Usage Notes

Troubleshooting

Preset Not Found Errors

If you see errors about missing presets:

  • Verify the preset name is spelled correctly in your template (case-sensitive)
  • Check the preset exists in the Preset Management panel
  • Ensure the preset wasn't deleted or renamed recently
  • Review EE template error logs for specific preset name references

Preset Parameters Not Applied

If preset parameters don't seem to be working:

  • Check if tag parameters are overriding preset values (tag parameters take precedence)
  • Verify the preset's JSON is valid if using the JSON editor
  • Clear the Image Pro cache to force regeneration with new preset settings
  • Enable debugging to see which parameters are being applied
  • Check for config.php overrides that might conflict with preset settings

Invalid Parameter Values

If preset validation fails:

  • Review parameter value types (numbers vs strings, boolean values)
  • Check for typos in parameter names (e.g., widht instead of width)
  • Ensure parameter values are within acceptable ranges
  • Validate JSON syntax if using the JSON editor
  • Refer to the Parameters documentation for correct usage

Image Processing Defaults

The Image Processing Defaults panel provides comprehensive control over how Image Pro processes and outputs images. These settings establish site-wide defaults for image manipulation operations, output formats, quality levels, lazy loading behaviour, and operational constraints.

Overview

Image Pro's processing defaults allow you to:

  • Set default output formats and quality levels for different image types
  • Configure lazy loading and progressive enhancement strategies
  • Define fallback images for missing or failed source images
  • Establish operational limits for source image processing
  • Control automatic image adjustments and optimisations

All settings can be overridden on a per-tag basis using parameters or via presets.

Output Format Settings

Control the default output format for processed images and how Image Pro handles format conversion.

Default Image Format

The default format used when no format parameter is specified in a tag. Image Pro supports JPG, PNG, WebP, AVIF, and GIF formats.

Format Options:
  • JPG (default) โ€“ Best for photographs and images with many colours. Excellent compression with acceptable quality loss. Universal browser support.
  • PNG โ€“ Best for graphics, logos, and images requiring transparency. Lossless compression but larger file sizes. Universal browser support.
  • WebP โ€“ Modern format offering superior compression for both lossy and lossless images. Image Pro automatically substitutes JPG/PNG for browsers lacking WebP support.
  • AVIF โ€“ Next-generation format with exceptional compression efficiency. Image Pro automatically substitutes WebP or JPG for browsers lacking AVIF support.
  • GIF โ€“ Legacy format for simple animations. Not recommended for static images (use PNG or WebP instead).

Recommended Values:
  • jpg โ€“ Safe default with universal browser support
  • webp โ€“ Modern sites targeting recent browsers
  • avif โ€“ Cutting-edge sites with progressive enhancement strategy

SVG Passthrough

When enabled, SVG source images bypass processing and are served directly. This preserves vector quality and eliminates unnecessary processing overhead.

Recommended Setting:
  • Enabled (default) โ€“ SVG files retain their scalability and small file size
  • Disabled โ€“ Force SVG rasterisation to specified dimensions (useful when you need pixel-perfect control)

Animated GIF Handling

Control whether animated GIFs are preserved during format conversion or treated as static images.

Options:
  • Preserve Animation (default) โ€“ Animated GIFs remain animated when converted to formats supporting animation
  • First Frame Only โ€“ Extract first frame only, treating animated GIFs as static images

Quality Settings

Configure default quality levels for different output formats. Quality affects both file size and visual fidelity.

JPG Quality

Quality level for JPG output, ranging from 0 (lowest quality, smallest file) to 100 (highest quality, largest file).

Recommended Values:
  • 85 (default) โ€“ Excellent balance between quality and file size for most photographs
  • 90-95 โ€“ High-quality images where fidelity is critical
  • 75-80 โ€“ Aggressive compression for bandwidth-constrained environments
  • 60-70 โ€“ Thumbnail images where slight quality loss is acceptable

PNG Compression Level

PNG compression level, ranging from 0 (no compression) to 9 (maximum compression). Higher values produce smaller files but take longer to process.

Recommended Values:
  • 6 (default) โ€“ Good balance between compression efficiency and processing time
  • 9 โ€“ Maximum compression for production builds (slower processing)
  • 3-5 โ€“ Faster processing during development

WebP Quality

Quality level for WebP output (lossy compression), ranging from 0 to 100.

Recommended Values:
  • 85 (default) โ€“ Excellent quality with superior compression compared to equivalent JPG
  • 75-80 โ€“ Aggressive compression with minimal perceptible quality loss

AVIF Quality

Quality level for AVIF output, ranging from 0 to 100.

Recommended Values:
  • 75 (default) โ€“ Exceptional compression with excellent visual quality
  • 60-70 โ€“ Very aggressive compression whilst maintaining acceptable quality

Dimension Defaults

Set default dimensions and scaling behaviour when explicit dimensions aren't specified in tags.

Default Width

Default width in pixels when no width parameter is specified.

Recommended Values:
  • 800 (default) โ€“ Suitable for most content images in modern responsive layouts
  • 1200 โ€“ High-resolution displays or hero images
  • 400-600 โ€“ Thumbnail or sidebar images

Default Height

Default height in pixels when no height parameter is specified.

Recommended Values:
  • 600 (default) โ€“ Balanced aspect ratio with 800px default width
  • Auto โ€“ Maintain source aspect ratio (leave blank or set to 0)

Allow Scale Larger

Control whether Image Pro can scale images larger than their original dimensions.

Options:
  • Disabled (default) โ€“ Images are never scaled beyond original dimensions (preserves quality)
  • Enabled โ€“ Allow upscaling when requested dimensions exceed source size (may reduce quality)

Default Background Colour

Hexadecimal colour value used for letterboxing, padding, or replacing transparency. Specified without the # symbol.

Recommended Values:
  • ffffff (default) โ€“ White background, suitable for most sites
  • 000000 โ€“ Black background for dark-themed sites
  • f5f5f5 โ€“ Light grey, less harsh than pure white

Lazy Loading Settings

Configure default lazy loading behaviour to optimise page load performance.

Enable Lazy Loading

When enabled, images are loaded only when they enter (or approach) the viewport. This significantly improves initial page load times.

Options:
  • Disabled (default) โ€“ All images load immediately with the page
  • Enabled โ€“ Images load on-demand as users scroll

Lazy Loading Mode

The strategy used for lazy loading implementation when lazy loading is enabled.

Mode Options:
  • LQIP (Low Quality Image Placeholder, default) โ€“ Show blurred preview whilst full image loads
  • Native โ€“ Use browser's native lazy loading (loading="lazy" attribute)
  • Blank โ€“ Show blank placeholder until image loads
  • Colour โ€“ Show solid colour placeholder (uses default background colour)

Mode Comparison:
  • LQIP โ€“ Best user experience, slight processing overhead for preview generation
  • Native โ€“ Minimal overhead, relies on browser implementation (good modern browser support)
  • Blank/Colour โ€“ Simplest implementation, may cause layout shift

Progressive Enhancement

When enabled with LQIP mode, generates progressively-encoded JPEGs that render incrementally as they download.

Options:
  • Disabled (default) โ€“ Standard baseline JPEGs
  • Enabled โ€“ Progressive JPEGs that improve perceived load time

Default Preload Critical

Whether to add rel="preload" hints for above-the-fold images by default.

Options:
  • Disabled (default) โ€“ No preload hints added
  • Enabled โ€“ Add preload hints to prioritise critical images

Recommended Usage:
  • Keep disabled globally
  • Enable selectively via preload_critical="y" parameter for hero images and above-the-fold content
  • Use sparingly โ€“ too many preload hints reduce effectiveness

Fallback Image Settings

Configure how Image Pro handles missing or failed source images.

Enable Default Fallback Image

When enabled, Image Pro generates a placeholder image if the source image is missing or inaccessible.

Options:
  • Disabled โ€“ Return empty result or error for missing images
  • Solid Colour (default) โ€“ Generate solid colour placeholder
  • Local File โ€“ Use specified local fallback image
  • Remote URL โ€“ Fetch and use specified remote fallback image

Fallback Image Colour

Hexadecimal colour for generated placeholder images when using solid colour fallback mode.

Recommended Values:
  • dddddd (default) โ€“ Light grey, indicates missing image without being intrusive
  • f0f0f0 โ€“ Very light grey, subtle indication
  • cccccc โ€“ Medium grey, more prominent

Fallback Image Local Path

Path to a local image file to use as fallback (relative to EE base path). Only used when fallback mode is set to "Local File".

Example:
  • images/defaults/placeholder.jpg
  • assets/img/no-image-available.png

Fallback Image Remote URL

Full URL to a remote image to use as fallback. Only used when fallback mode is set to "Remote URL".

Example:
  • https://via.placeholder.com/800x600/dddddd/999999
  • https://cdn.example.com/defaults/placeholder.jpg

Automatic Adjustments

Configure automatic image enhancement features.

Enable Auto-Sharpen

Apply subtle sharpening to processed images to compensate for softening that occurs during resize operations.

Options:
  • Enabled (default) โ€“ Automatically sharpen resized images
  • Disabled โ€“ No automatic sharpening applied

Recommended Setting:
  • Keep enabled for most use cases โ€“ the effect is subtle and improves perceived image quality
  • Disable if you prefer full manual control or are applying custom filters

Enable Auto-Adjust

Automatically adjust exposure, contrast, and colour balance to optimise image appearance.

Options:
  • Disabled (default) โ€“ No automatic adjustments
  • Enabled โ€“ Apply automatic image enhancement

Recommended Setting:
  • Keep disabled for most use cases โ€“ automatic adjustments can produce unexpected results
  • Consider enabling for user-generated content where image quality varies significantly

Operational Limits

Set constraints on source image processing to prevent resource exhaustion and ensure reliable operation.

Maximum Source Image Size

Maximum filesize (in megabytes) for source images. Images exceeding this limit are rejected.

Recommended Values:
  • 25 (default) โ€“ Suitable for most hosting environments
  • 50-100 โ€“ High-memory servers or sites handling professional photography
  • 10-15 โ€“ Shared hosting or resource-constrained environments

Maximum Image Dimension

Maximum width or height (in pixels) for source images. Larger dimensions are rejected to prevent excessive memory usage.

Recommended Values:
  • 3000 (default) โ€“ Accommodates most high-resolution images
  • 5000 โ€“ Professional photography or print-quality sources
  • 2000 โ€“ Conservative limit for standard web content

Minimum PHP Memory

Minimum PHP memory limit (in megabytes) required for image processing. Image Pro checks available memory before processing large images.

Recommended Values:
  • 256 (default) โ€“ Standard PHP configuration
  • 512 โ€“ Processing very large images or complex operations
  • 128 โ€“ Minimum viable for basic image processing

Minimum PHP Process Time

Minimum PHP max_execution_time (in seconds) required for processing. Ensures sufficient time for complex operations.

Recommended Values:
  • 30 (default) โ€“ Standard PHP timeout
  • 60 โ€“ Processing very large images or slow remote sources
  • 120 โ€“ Batch processing or development environments

Remote Connection Timeout

Maximum time (in seconds) to wait when fetching remote images before giving up.

Recommended Values:
  • 20 (default) โ€“ Reasonable timeout for most remote sources
  • 10 โ€“ Faster failure for unavailable sources
  • 30-60 โ€“ Slow or unreliable remote sources

User Agent String

User-agent header sent when fetching remote images. Some servers require valid user-agent strings.

Default Value:
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:144.0) Gecko/20100101 Firefox/144.0

Usage Notes:
  • Most sites work fine with the default value
  • Update if specific remote sources reject the default user-agent
  • Use a realistic browser user-agent string for best compatibility

Output Behaviour

Control how Image Pro generates output markup and handles edge cases.

Class Consolidation

When enabled, duplicate CSS classes in the output are automatically removed.

Options:
  • Enabled (default) โ€“ Remove duplicate classes
  • Disabled โ€“ Output all specified classes as-is

HTML Decoding

Automatically decode HTML entities in parameter values (useful when parameters come from EE variables or database fields).

Options:
  • Enabled (default) โ€“ Decode HTML entities in parameters
  • Disabled โ€“ Use parameter values exactly as provided

Always Output Full URLs

Generate absolute URLs for all image paths instead of relative paths.

Options:
  • Disabled (default) โ€“ Use relative paths for local images
  • Enabled โ€“ Always generate absolute URLs

When to Enable:
  • Content distributed via RSS/feeds
  • Email templates
  • External API consumption
  • Sites using CDNs (combine with path prefix)

Usage Notes

Quality vs File Size Trade-offs:
  • JPG 85 vs 75: Reducing quality from 85 to 75 typically reduces file size by 40-50% with minimal perceptible quality loss
  • WebP Advantage: WebP at quality 80 typically matches JPG quality 85 at 25-35% smaller file size
  • AVIF Advantage: AVIF at quality 65 typically matches JPG quality 85 at 40-50% smaller file size
  • PNG Consideration: PNG compression is lossless โ€“ higher levels only affect processing time, not quality

Usage Notes

Format Selection Strategy:

Choose formats based on content type and target audience:

  • Photographs: Use JPG or WebP for optimal compression
  • Graphics/Logos: Use PNG for sharp edges and transparency, or WebP for better compression
  • Complex Graphics: Consider SVG for scalable vector graphics
  • Modern Browsers: WebP or AVIF are excellent choices โ€“ Image Pro automatically provides fallbacks for older browsers
  • Maximum Compatibility: Stick with JPG and PNG if you need to support very old browsers or non-standard clients

Usage Notes

Lazy Loading Best Practices:
  • Above the Fold: Never lazy load hero images or content visible on initial page load
  • LQIP Mode: Best user experience but requires additional processing for preview generation
  • Native Mode: Use for simpler implementation with modern browser support (95%+ global support)
  • Mobile Consideration: Lazy loading provides greatest benefit on mobile devices with limited bandwidth
  • SEO Impact: Modern search engines handle lazy loading well, but ensure implementation doesn't break crawling

Usage Notes

Memory and Resource Planning:

Calculate memory requirements for image processing:

  • Memory Formula: Image Width ร— Height ร— Channels (3 for RGB, 4 for RGBA) ร— 1.5 (safety factor) bytes
  • Example: 3000ร—3000 RGB image requires approximately 40MB memory (3000 ร— 3000 ร— 3 ร— 1.5 รท 1,048,576)
  • PHP Memory: Set minimum PHP memory at least 4-5ร— your largest expected image memory requirement
  • Source Limits: Set maximum source dimensions based on your PHP memory_limit configuration

Usage Notes

Troubleshooting

Memory Exhaustion Errors

If you see "out of memory" errors:

  • Reduce Maximum Source Image Size and Maximum Image Dimension settings
  • Increase PHP memory_limit in php.ini or .htaccess
  • Check for particularly large source images and optimise them before upload
  • Consider using cloud-based image processing for very large images

Poor Image Quality

If processed images appear overly compressed or low quality:

  • Increase JPG/WebP quality settings (try 90-95 for critical images)
  • Check if auto-adjust is enabled and producing undesired results
  • Verify source images are high quality (garbage in, garbage out)
  • Ensure you're not upscaling images beyond their original dimensions

Slow Processing Times

If image processing seems slow:

  • Check processing logs to identify bottlenecks (remote fetching vs local processing)
  • Reduce PNG compression level for faster processing (slight quality/size trade-off)
  • Disable auto-adjust if enabled (computationally expensive)
  • Verify source images aren't unnecessarily large
  • Consider increasing PHP process time limit for complex operations

System Settings

The System Settings panel provides control over Image Pro's operational behaviour, including enable/disable controls, action links, debugging features, and integration options. These settings affect how Image Pro functions within your ExpressionEngine installation.

Overview

Image Pro's system settings allow you to:

  • Enable or disable the add-on globally without uninstalling
  • Generate direct action links for image processing
  • Enable debugging to troubleshoot processing issues
  • Configure cache audit behaviour and scheduling
  • Control browser capability detection

These settings typically require attention only during initial setup or when troubleshooting specific issues.

Enable/Disable Controls

Enable Image Pro

Master control to enable or disable Image Pro add-on functionality across your entire site.

Options:
  • Enabled (default) โ€“ Image Pro processes images normally
  • Disabled โ€“ All Image Pro tags return empty output without processing

Use Cases:
  • Temporary Disable: Quickly disable image processing without removing tags from templates
  • Maintenance Mode: Disable during server maintenance or migrations
  • Troubleshooting: Isolate Image Pro from other site issues
  • Staging Sites: Disable on development environments whilst maintaining template compatibility

Speedy Escape

Enable ultra-fast tag parsing mode that bypasses normal parameter processing. Only recommended for experienced users optimising high-performance sites.

Options:
  • Disabled (default) โ€“ Normal parameter processing with full validation
  • Enabled โ€“ Skip parameter validation for maximum performance

Important Notes:
  • Performance Gain: Minimal in most scenarios (microseconds per tag)
  • Risk: Invalid parameters may cause unpredictable behaviour or errors
  • Recommendation: Keep disabled unless you've profiled and confirmed parameter processing is a bottleneck
  • Use Only When: You're certain all Image Pro tags use valid, tested parameters

Action Links

Action links are direct URLs that trigger image processing without requiring template parsing. They're useful for dynamic image generation, API integration, and external applications.

Enable Action Links

Allow Image Pro to generate and respond to action link URLs.

Options:
  • Disabled (default) โ€“ Action links are not generated or processed
  • Enabled โ€“ Generate action links when requested

Security Considerations:
  • Action links contain encoded parameters that could be modified
  • Enable only if you need this functionality
  • Monitor server resources if action links are publicly accessible
  • Consider rate limiting at server level for production sites

Append Path to Action Links

Include the full processed image path in action link URLs for improved SEO and clarity.

Options:
  • Disabled (default) โ€“ Action links use query string parameters only
  • Enabled โ€“ Append processed image path to URL

Example URLs:
  • Disabled: https://example.com/?ACT=123&params=encoded_data
  • Enabled: https://example.com/?ACT=123&params=encoded_data/images/cache/product-800x600.jpg

Cache Auditing

Enable Cache Audit

Enable automatic periodic cache auditing to remove expired processed images.

Options:
  • Disabled (default) โ€“ Cache audits run only when manually triggered via Control Panel
  • Enabled โ€“ Automatic cache audits run based on audit interval

How It Works:
  • Image Pro checks whether an audit is due each time a page with Image Pro tags loads
  • Audits run in the background without blocking page rendering
  • Only images exceeding their cache duration are removed
  • Audit timestamps are tracked per connection in the cache log database

Default Cache Audit Interval

Time period (in seconds) between automatic cache audits when cache audit is enabled.

Recommended Values:
  • 604800 (7 days, default) โ€“ Weekly audits suitable for most sites
  • 86400 (1 day) โ€“ Daily audits for high-traffic sites with frequent image changes
  • 2592000 (30 days) โ€“ Monthly audits for stable sites with infrequent changes
  • 43200 (12 hours) โ€“ Aggressive auditing for development or testing environments

Considerations:
  • More frequent audits keep cache cleaner but add processing overhead
  • Balance audit frequency with cache duration settings
  • Audit intervals shorter than cache durations provide minimal benefit

Debugging and Diagnostics

Enable Debugging

Enable detailed debugging output to help diagnose image processing issues.

Options:
  • Disabled (default) โ€“ Normal operation without debug output
  • Enabled โ€“ Generate detailed processing information

Debug Information Includes:
  • Parameter values received and processed
  • File paths and URLs being accessed
  • Image processing pipeline stages and timings
  • Cache hit/miss information
  • Error messages and stack traces
  • Memory usage and resource consumption

Important Notes:
  • Security: Debug output may expose server paths and configuration details โ€“ never enable on production sites
  • Performance: Debugging adds processing overhead
  • Output Location: Debug messages appear via ee('jcogs_img:Utilities')->debug_message() method
  • Development Only: Use exclusively in development or staging environments

Enable Browser Capability Check

Enable automatic browser capability detection to serve optimal image formats based on client support.

Options:
  • Disabled (default) โ€“ Serve requested format without browser detection
  • Enabled โ€“ Automatically detect browser capabilities and substitute compatible formats

How It Works:
  • Image Pro examines request headers (Accept header) to determine supported formats
  • If browser doesn't support requested format (e.g., WebP, AVIF), Image Pro substitutes a compatible format
  • Fallback hierarchy: AVIF โ†’ WebP โ†’ JPG/PNG
  • Format substitution is transparent to templates

Recommended Setting:
  • Enable this feature to safely use modern formats like WebP and AVIF
  • With browser checking enabled, you can specify WebP or AVIF as defaults knowing older browsers will receive compatible formats automatically
  • Disable only if you have a custom format handling strategy or need absolute format predictability

Cache Log Management

Cache Log Preload Threshold

Maximum number of cache log entries to preload into memory for performance optimisation.

Recommended Values:
  • 10000 (default) โ€“ Suitable for most sites
  • 25000-50000 โ€“ Sites with extensive image libraries and high memory limits
  • 5000 โ€“ Memory-constrained environments or smaller sites
  • 0 โ€“ Disable preloading (rely on database queries for each cache lookup)

How It Works:
  • Image Pro can preload recent cache entries into memory on first Image Pro tag execution
  • Subsequent cache lookups check memory first before querying database
  • Improves performance when multiple Image Pro tags appear on same page
  • Trade-off between memory consumption and database query reduction

Performance Impact:
  • Preloading 10,000 entries uses approximately 2-5MB memory
  • Reduces database queries by 80-90% on pages with many Image Pro tags
  • Most beneficial on high-traffic pages with numerous processed images

Usage Notes

Action Links vs Template Tags:

Understanding when to use action links versus standard template tags:

  • Use Template Tags When: Embedding images in EE templates (normal use case)
  • Use Action Links When: Generating images for external applications, APIs, or dynamic contexts outside EE templates
  • Performance: Template tags are more efficient as they benefit from EE's template caching
  • Caching: Both methods utilise Image Pro's cache system equally

Usage Notes

Cache Audit Strategy:

Develop an audit strategy appropriate to your site:

  • High-Traffic Sites: Enable automatic audits with weekly interval to maintain reasonable cache size
  • Low-Traffic Sites: Manual audits may be sufficient โ€“ run quarterly or when disk space concerns arise
  • Development Sites: Aggressive auditing (daily or manual as needed) keeps cache representative of current code
  • Staging Sites: Manual audits before/after major deployments
  • Monitoring: Track cache size via Cache Management panel statistics to inform audit frequency

Usage Notes

Browser Capability Detection Best Practices:
  • Modern Browsers: Detection works reliably for Chrome, Firefox, Safari, Edge (all recent versions)
  • CDN Compatibility: Browser checking may not work correctly through some CDN configurations โ€“ test thoroughly
  • Vary Headers: When enabled, ensure your server/CDN sends appropriate Vary headers for proper caching
  • Testing: Test with multiple browsers and devices to verify format substitution works as expected
  • Fallback Chain: Always ensure your fallback formats (JPG/PNG) are universally supported

Usage Notes

Debugging Workflow:

Effective debugging process for Image Pro issues:

  1. Enable debugging in System Settings
  2. Clear browser cache and Image Pro cache
  3. Load page containing problematic Image Pro tag
  4. Review debug output for parameter values, file paths, processing stages
  5. Identify failure point (source loading, processing, cache write, output generation)
  6. Address specific issue based on debug information
  7. Disable debugging before returning to normal operation

Usage Notes

Troubleshooting

Images Not Processing

If Image Pro tags return empty output:

  • Verify "Enable Image Pro" is set to enabled in System Settings
  • Check template for syntax errors in Image Pro tags
  • Enable debugging to see processing details and error messages
  • Review browser console for JavaScript errors (if using lazy loading)

Action Links Not Working

If action links return errors or empty results:

  • Verify "Enable Action Links" is enabled in System Settings
  • Check that EE action IDs are registered correctly (cleared cache may help)
  • Ensure encoded parameters in URL haven't been truncated or corrupted
  • Review server error logs for permission or processing errors

Incorrect Format Served

If browsers receive unexpected image formats:

  • Check "Enable Browser Capability Check" setting matches your requirements
  • Verify browser sends correct Accept headers (use browser dev tools)
  • Test with browser capability checking enabled and disabled to isolate issue
  • Check if CDN or proxy is stripping or modifying Accept headers

Cache Audit Not Running

If automatic cache audits aren't executing:

  • Verify "Enable Cache Audit" is enabled
  • Check audit interval isn't set too high (weeks between audits)
  • Confirm site receives regular traffic (audits trigger on page loads)
  • Review cache statistics in Cache Management panel for last audit timestamp
  • Consider running manual audit via Control Panel to verify functionality

Advanced Settings

The Advanced Settings panel provides fine-grained control over specialised Image Pro behaviours, edge case handling, and technical optimisations. These settings should typically remain at their defaults unless you're addressing specific technical requirements or troubleshooting unusual scenarios.

Overview

Image Pro's advanced settings allow you to:

  • Configure CSS class and style attribute consolidation
  • Control attribute variable expansion behaviour
  • Customise cache filename generation
  • Adjust PHP resource limit checking
  • Fine-tune remote image handling

Most users will never need to modify these settings. They exist to handle edge cases and provide maximum flexibility for complex implementations.

Output Consolidation

Class Consolidation Default

Control whether duplicate CSS classes are automatically removed from generated image tags.

Options:
  • Enabled (default) โ€“ Automatically remove duplicate class names
  • Disabled โ€“ Output all specified classes, including duplicates

How It Works:
  • When multiple sources add the same class (preset + tag parameter + template variable), duplicates are removed
  • Classes are space-separated and de-duplicated whilst preserving order
  • This setting provides the default behaviour; override per-tag using class_consolidation parameter

Example:
  • Input: class="img-fluid rounded img-fluid"
  • Consolidated: class="img-fluid rounded"
  • Not Consolidated: class="img-fluid rounded img-fluid"

When to Disable:
  • You're using CSS frameworks that rely on class repetition (rare)
  • Debugging class inheritance from multiple sources
  • Maintaining exact output for testing or comparison purposes

Attribute Variable Expansion Default

Control whether EE template variables within attribute values are automatically parsed and expanded.

Options:
  • Enabled (default) โ€“ Parse variables in attribute values
  • Disabled โ€“ Use attribute values literally without variable parsing

How It Works:
  • When enabled, variables like {entry_id} or {custom_field} within attribute values are parsed by ExpressionEngine
  • Applies to all custom attributes added via attr:* parameters
  • This setting provides the default behaviour; override per-tag using attr_expand parameter

Example:
  • Template: attr:data-entry-id="{entry_id}"
  • Expanded: data-entry-id="12345"
  • Not Expanded: data-entry-id="{entry_id}"

When to Disable:
  • You need literal curly braces in attribute values (e.g., JSON data attributes)
  • Performance optimisation when no variables are used in attributes
  • Preventing potential parsing conflicts with JavaScript template syntax

Cache Filename Handling

Default Filename Separator

Character(s) used to separate components in generated cache filenames.

Default Value:
  • __ (double underscore) โ€“ Clearly distinguishes filename components

Alternative Values:
  • - (hyphen) โ€“ More URL-friendly, slightly harder to parse visually
  • _ (single underscore) โ€“ Compact but may conflict with underscores in source filenames
  • . (period) โ€“ Extremely compact but can confuse file extension detection

Filename Structure:
  • Cache filenames typically contain: source name, dimensions, format, hash
  • Example with __: product__800x600__webp__a1b2c3d4.webp
  • Example with -: product-800x600-webp-a1b2c3d4.webp

When to Change:
  • URL aesthetics or SEO requirements prefer different separators
  • Integration with external systems that have filename requirements
  • Avoiding conflicts with characters in source filenames

Maximum Source Filename Length

Maximum number of characters from the source filename to include in cache filenames. Longer source names are truncated.

Recommended Values:
  • 100 (default) โ€“ Balances readability with filesystem compatibility
  • 50-75 โ€“ Conservative limit for very long source filenames or filesystem constraints
  • 150-200 โ€“ Preserve more of the source filename for debugging (ensure filesystem supports longer names)

Filesystem Limits:
  • Most modern filesystems support 255-character filenames
  • Cache filenames include source name + separator + dimensions + format + hash + extension
  • Setting too high may cause issues on filesystems with shorter limits
  • Truncation preserves file extension and adds processing details

Include Source in Filename Hash

Control whether the source filename is included when generating the cache filename hash component.

Options:
  • Enabled (default) โ€“ Source filename affects hash value
  • Disabled โ€“ Hash based only on processing parameters

How It Works:
  • The hash component ensures unique cache filenames for different source/parameter combinations
  • Including source filename means different sources with identical processing create separate cache files
  • Excluding source filename allows parameter-based cache sharing across similar source images

Impact:
  • Enabled: More cache files, clearer source attribution, no risk of collision
  • Disabled: Potential cache reuse across sources, slightly smaller cache, requires parameter uniqueness

When to Disable:
  • You want to share processed versions across multiple identical source images with different names
  • Reducing cache size is critical and you're certain parameter combinations are unique
  • Advanced cache optimisation scenarios (requires thorough testing)

PHP Resource Validation

Default Minimum PHP RAM

Minimum PHP memory_limit (in megabytes) required for image processing. Image Pro checks available memory before processing.

Recommended Values:
  • 256 (default) โ€“ Standard PHP memory configuration
  • 512 โ€“ Large images or complex processing operations
  • 128 โ€“ Minimal viable for basic processing (may limit source image size)

How It Works:
  • Before processing, Image Pro checks PHP's memory_limit setting
  • If available memory is below this threshold, processing may be skipped or limited
  • This prevents memory exhaustion errors during processing
  • Set based on your server's PHP configuration and expected image sizes

Default Minimum PHP Process Time

Minimum PHP max_execution_time (in seconds) required for processing. Ensures sufficient time for complex operations.

Recommended Values:
  • 30 (default) โ€“ Standard PHP timeout, suitable for most processing
  • 60 โ€“ Large images or slow remote sources
  • 120 โ€“ Complex batch operations or development environments
  • 300 โ€“ Extensive processing or very large source images (use with caution)

Considerations:
  • Image Pro attempts to extend execution time for individual processing operations
  • This setting defines minimum acceptable baseline before attempting processing
  • Server-level limits may override PHP ini settings
  • Balance against user experience โ€“ very long timeouts may indicate processing issues

Remote Image Handling

Default PHP Remote Connection Time

Maximum time (in seconds) to wait when fetching remote images before timing out.

Recommended Values:
  • 20 (default) โ€“ Reasonable timeout for most remote sources
  • 10 โ€“ Faster failure for unavailable sources, better user experience
  • 30-45 โ€“ Slow or unreliable remote sources, international connections
  • 60+ โ€“ Development/debugging only (production timeouts should be shorter)

Impact on User Experience:
  • Shorter timeouts mean faster page loads when remote sources are unavailable
  • Longer timeouts increase success rate for slow connections but delay page rendering
  • Failed fetches can fall back to configured fallback images
  • Successfully fetched images are cached, eliminating timeout delays on subsequent requests

Default User Agent String

User-agent header sent when fetching remote images. Some remote servers require recognisable user-agent strings.

Default Value:
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 15.7; rv:144.0) Gecko/20100101 Firefox/144.0

When to Change:
  • Remote servers reject or rate-limit the default user-agent
  • You need to identify your site specifically in remote server logs
  • Compliance with API terms requiring specific user-agent identification
  • Testing different user-agent handling by remote sources

Best Practices:
  • Use realistic browser user-agent strings for maximum compatibility
  • Avoid empty or generic user-agents (may be blocked by security filters)
  • Include version numbers to appear as legitimate browser traffic
  • Consider custom user-agent like YourSite/1.0 (+https://yoursite.com) if identifying your site is important

Legacy CE Image Compatibility

CE Image Remote Directory Mode

Configure directory structure when processing remote images for CE Image compatibility mode.

Options:
  • made (default) โ€“ Store remote images in made/remote/ subdirectory
  • remote โ€“ Store remote images in remote/ subdirectory
  • root โ€“ Store remote images in root cache directory

Purpose:
  • Provides compatibility with sites migrating from CE Image
  • Matches CE Image's directory organisation for remote image cache
  • Maintains existing URLs when transitioning from CE Image to Image Pro

Recommendation:
  • Keep default made unless specifically migrating from CE Image
  • Match your previous CE Image configuration if maintaining URL compatibility is required
  • After migration is complete, this setting has minimal ongoing impact

Usage Notes

Class and Attribute Consolidation Performance:
  • Consolidation operations add negligible processing overhead (microseconds per tag)
  • Benefits include cleaner HTML output and smaller page size
  • Variable expansion requires template parsing โ€“ slightly more expensive but still minimal impact
  • If you're optimising for absolute maximum performance and don't use these features, disabling provides marginal gains

Usage Notes

Cache Filename Strategies:

Choose filename strategies based on your requirements:

  • Readability Focus: Use double underscore separator, longer source filename length, include source in hash
  • Compact URLs: Use hyphen separator, shorter source filename length (50-75 chars)
  • Maximum Uniqueness: Enable "Include Source in Filename Hash" to guarantee no collisions
  • Cache Efficiency: Disable "Include Source in Filename Hash" if processing identical images from multiple sources

Usage Notes

PHP Resource Limit Planning:

Coordinate Image Pro settings with PHP configuration:

  • Memory: Set Image Pro minimum RAM to ~60% of PHP memory_limit (leaves headroom for EE and other operations)
  • Execution Time: Set Image Pro minimum to match your PHP max_execution_time
  • Shared Hosting: Use conservative settings (256MB RAM, 30s timeout) and smaller source image limits
  • Dedicated Servers: Can use higher limits (512MB+ RAM, 60s+ timeout) for larger images
  • Monitoring: Review PHP error logs to identify resource limit issues and adjust accordingly

Usage Notes

Remote Image Best Practices:
  • Performance: Always cache remote images โ€“ fetching on every request is slow and unreliable
  • Timeout Strategy: Use shorter timeouts (10-15s) for better UX, rely on cache for subsequent requests
  • Fallback Images: Configure fallback images for graceful handling of unavailable remote sources
  • HTTPS: Prefer HTTPS remote URLs to avoid mixed-content warnings
  • CDN Sources: Remote fetching works well with CDN-hosted images but ensure CDN allows hotlinking
  • Rate Limiting: Be aware that excessive remote fetching may trigger rate limits on source servers

Usage Notes

Troubleshooting

Duplicate Classes in Output

If duplicate CSS classes appear in generated image tags:

  • Verify "Class Consolidation Default" is enabled
  • Check if individual tags override consolidation with class_consolidation="n" parameter
  • Review presets and tag parameters for unintentional class duplication
  • Consider whether duplicates are intentional for specific CSS framework requirements

Variables Not Expanding in Attributes

If EE variables remain unparsed in attribute values:

  • Verify "Attribute Variable Expansion Default" is enabled
  • Check if individual tags disable expansion with attr_expand="n" parameter
  • Ensure variable syntax is correct ({variable_name})
  • Verify variables are available in template context where tag is used

Cache Filename Conflicts

If different sources produce identical cache filenames:

  • Enable "Include Source in Filename Hash" to ensure unique filenames per source
  • Verify source filenames are sufficiently different
  • Check if Maximum Source Filename Length is truncating distinctive portions of filenames
  • Review cache directory for unexpected file overwrites

Remote Image Fetch Failures

If remote images consistently fail to load:

  • Check remote URLs are accessible from your server (firewall, DNS issues)
  • Increase "Default PHP Remote Connection Time" if timeouts occur
  • Verify remote servers accept your user-agent string
  • Test remote URLs directly via command line (curl/wget) from server
  • Check for SSL certificate validation errors (may need to disable SSL verification in development)
  • Review remote server response headers for rate limiting or access restrictions