digirati-co-uk / iiif-manifest-editor

Create new IIIF Manifests. Modify existing manifests. Tell stories with IIIF.
https://manifest-editor.digirati.services/
MIT License
31 stars 2 forks source link

Media 3. Image with Image Service #195

Open tomcrane opened 2 years ago

tomcrane commented 2 years ago

Reference: https://tomcrane.github.io/scratch/me/media.html#case3

Data

Media is a static image that is the parameterisation of an image service, and that image service is declared as a service for the image. You can click through to view the properties of the image service. You can’t edit any of them - it’s an external resource. In the items list, it has the label Image from Image Service.

{
    "id": "https:/example.org/anno1",
    "type": "Annotation",
    "motivation": "painting",
    "body": {
        "id": "https:/example.org/images/my-service/full/791,1024/0/default.jpg",
        "type": "Image",
        "width": 791,
        "height": 1024,
        "format": "image/jpeg",
        "service": [
            {
                "@id": "https:/example.org/images/my-service",
                "@type": "ImageService2",
                "profile": "http://iiif.io/api/image/2/level1.json"
            }
        ]
    },
    "target": "https:/example.org/canvas1"
}

Editing Scenario

You can delete the whole painting annotation - the whole row in items, the image with its image service: the body of the anno, and its target.

But - you can also EDIT some aspects of the “static” image that the image service is attached to. This is a different UI widget - it no longer just displays the image props, it allows you to change the params of the image service call and therefore the pixels returned, it’s an image service consumer. It understands the capabilities of the image service and will let you do things like change the format and quality. You can also change the size. Sometimes this will affect the target but sometimes it won’t.

03-01

This first set of options is no longer displaying the dimensions of a content resource - it's now a configurator for an image service request!

The options are generated from the capabilities of the image service.

Changing anything here leaves 3. as 3.

You can also delete the image service, which would turn 3. into 2. BUT WARN ABOUT THIS!

Creation Scenario

Simply pasting an image service URL into the initial box will create this type of painting anno.

This is true whether the URL is the root (id) of the image service, or a particular parameterisation (the ME never creates Case 2).

The URL defaults to /full/max/0/default.jpg (checks that max is properly supported - it should be generated even by level0 static generators, but often isn't).

Then the user can change settings if required.

More complex v1.1 scenario

Changing the settings on the static Image resource is fine, it's only modifying a URL. But you could also be modifying an ImageServiceSelector for the image service itself, so that these settings apply to the service. E.g., the client will render a tiled, rotated region from the service itself.

The problem with this is that no viewer apart from Canvas Panel is going to handle that properly!

stephenwf commented 1 year ago

Currently supported, enhancements would be the "Image service options" and also picking a size, for a thumbnail and for identifier. (note identifier can only be selected during creation)