drupal / iiif_media_source
Layout Paragraphs
Installs: 4 177
Dependents: 0
Suggesters: 0
Security: 0
Type:drupal-module
pkg:composer/drupal/iiif_media_source
This package is auto-updated.
Last update: 2025-12-28 20:05:36 UTC
README
A Drupal module for integrating IIIF Image API image sources into Drupal media entities. Supports IIIF v2 and v3, region/size/rotation/quality/format parameterization, and robust validation.
Features
- Fetch and parse IIIF image manifests (
info.json) - Generate IIIF-compliant image URLs with region, size, rotation, quality, and format options
- Support for IIIF Image API v2 and v3
- Thumbnail and full image URL generation
- Handles maxWidth, maxHeight, and maxArea constraints
- Extensible and testable architecture
Requirements
- Drupal 9 or 10
- PHP 8.1+
- media module enabled
Installation
- Place this module in your
modules/contribormodules/customdirectory. - Enable the module via the Drupal admin UI or with Drush:
drush en iiif_media_source
Configuration
- No configuration is required by default.
- Thumbnail dimensions and other settings can be customized in the code or via configuration (future feature).
- To use with media entities, add a media type and select "IIIF Image" as the source plugin.
Usage
- When creating or editing a media entity, provide a IIIF manifest URL or image ID.
- The module will fetch the manifest and make image derivatives available.
- Use the provided image formatters to display IIIF images in your site.
API
Main Classes
IiifImage: Represents a IIIF image and provides methods for manifest parsing and URL generation.IiifImageUrlParams: Handles IIIF URL parameter construction and validation.IiifBase: Abstract base for IIIF-related classes.
Example: Generate a IIIF Image URL
use Drupal\iiif_media_source\Iiif\IiifImage;
use Drupal\iiif_media_source\Iiif\IiifImageUrlParams;
$image = new IiifImage($server, $prefix, $id, $info);
$params = IiifImageUrlParams::fromSettingsArray([
'region' => 'full',
'size' => 'max',
'rotation' => 0,
'quality' => 'default',
'format' => 'jpg',
], '3.0');
$url = $image->getBuiltImageUrl($params);
Testing
- PHPUnit and Kernel tests are provided for all core logic.
- To run tests:
phpunit --testsuite iiif_media_source - See
/tests/src/Unitand/tests/src/Kernelfor test coverage.
Submodules
This project includes the following submodules:
- IIIF Image Style: Provides IIIF image styles, effects, and responsive image integration for IIIF images in Drupal.
Roadmap
- UI for configuring default thumbnail sizes and other options
- Support for additional IIIF features (auth, presentation, etc.)
- Improved error handling and logging
- More flexible integration with Drupal media and image styles