You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/api/image/2.0/change-log.md
+16-17Lines changed: 16 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,15 +12,13 @@ pre: draft
12
12
13
13
This document is a companion to the [IIIF Image API Specification, Version 2.0][api]. It describes the significant changes to the API since [Version 1.1][api-11]. The changes are broken into two groups: [Breaking Changes][breaking-changes], i.e. those that are not backwards compatible from either a client or server perspective (or both); and [Other Changes][other-changes], i.e. those that are backwards compatible. The latter group consists mostly of new features.
14
14
15
-
In addition to the changes described above:
15
+
In addition to changes in the API, the specification documents have been changed as follows:
16
16
17
17
* The ordering of the major sections in the specification document has been adjusted for better flow.
18
18
* The use of [RFC 2119 keywords][rfc-2119] has been made more consistent.
19
19
* Language has been adjusted to make the document less developer-centric.
20
20
21
-
These changes will not be described further in this document.
22
-
23
-
With the [2.0 Release of the IIIF Image API][api], the editors will begin using [Semantic Versioning][semver] to enumerate releases. As the API relies on predictable URI patterns in several areas, careful choices have been made about which details of the version will be expressed and where. This is explained in [Appendix B][versioning].
21
+
With the [2.0 Release of the IIIF Image API][api], [Semantic Versioning][semver] is used to enumerate releases. As the API relies on predictable URI patterns in several areas, careful choices have been made about which details of the version will be expressed and where. This is explained in [Appendix B][versioning].
24
22
25
23
## Table of Contents
26
24
{:.no_toc}
@@ -34,11 +32,11 @@ With the [2.0 Release of the IIIF Image API][api], the editors will begin using
34
32
35
33
Previous versions of the specification used "grey" (not "gray") but "color" (not "colour"). While this does reflect the international nature of IIIF, it is not terribly consistent. From this release `grey` is now `gray`.
36
34
37
-
There was also confusion among users as to the meaning of `native`. The API does not recognize the notion of a source image, and the label `native` was tied too closely to such an idea. In 2.0 `native` has been replaced with `default`, with the implication that the server should return the image in a default quality, but the API provides no instructions as to how this decision is made (in the future, for example, authorization may determine the default quality).
35
+
There was also confusion among users as to the meaning of `native`. The API does not recognize the notion of a source image, and the label `native` was tied too closely to such an idea. In 2.0 `native` has been replaced with `default`, with the implication that the server should return the image in a default quality. The API does not specify how this decision is made (in the future, for example, authorization may determine the default quality).
38
36
39
37
### Added `profile` property to Image Information document
40
38
41
-
This is a response to several requests for the ability to describe the capabilites of a server or a particular image with finer granularity than that of the compliance levels. For example, a server may be completely compliant with level 1, but also support the `!w,h` syntax for specifying the size, which is a level 2 feature. This capability can be exposed using the `supports` property with the `profile` property.
39
+
This is a response to several requests for the ability to describe the capabilities of a server or a particular image with finer granularity than that of the compliance levels. For example, a server may be completely compliant with level 1, but also support the `!w,h` syntax for specifying the size, which is a level 2 feature. This capability can be exposed using the `supports` property with the `profile` property.
42
40
43
41
The `supports` property may also be used to describe extension features. See [5.2 Extensions][extensions] for details.
44
42
@@ -56,26 +54,27 @@ The compliance URIs have been moved into the `http://iiif.io` domain. They now r
56
54
57
55
### Dropped Support for Content Negotiation and Default Image Format
58
56
59
-
As of this version, a client must specify the format of the image as a file-like suffix on the URI, e.g. `default__.jpg__`. There are several reasons for this change:
57
+
As of this version, a client must specify the format of the image as a file-extension like suffix on the URI (e.g. `.jpg`). There are several reasons for this change:
60
58
61
59
* This a typical convention employed by image processing utilities, (cf. [ImageMagick][imagemagick-output], [Pillow][pillow], [Kakadu][kdu-usage], and most others).
62
-
* The formats in which the image is available are explicitly enumerated by the info.json document for an image and/or the server compliance level document. A client should never need to guess or let the server decide as `jpg` is always required.
60
+
* The formats in which the image is available are explicitly enumerated by the `info.json` document for an image and/or the server compliance level document. A client should never need to guess or let the server decide.
61
+
* The `jpg` format must be supported at all compliance levels and thus applications requiring it can rely upon its availability.
63
62
* Static image files on the web typically have file extensions that indicate the format, and there was never a clear use case for when a client would prefer content negotiation over expressing the format in the URI.
64
63
65
-
Servers should now return a 400 (Bad Request, if possible) or else a 404 (Not found) when an image request does not include a format suffix.
64
+
Servers should now return a 400 (Bad Request) if possible, or else a 404 (Not Found) when an image request does not include a format suffix.
66
65
67
66
### Limited Error Response Code Requirements for Level 0
68
67
69
-
Level-0-compliant servers may always return a 404 (Not Found) error for any bad requests. While this is not brought out explicitly in the document, the RFC keyword describing when to return a 400 (Bad Request) response has been reduced to "should".
68
+
Servers compliant at level 0 may always return a 404 (Not Found) error for any bad requests. While this is not brought out explicitly in the document, the RFC keyword describing when to return a 400 (Bad Request) response has been reduced to "should".
70
69
71
70
## Other Changes
72
71
73
72
### Added Canonical URI Form
74
73
75
74
There are potentially several ways to request the same image, and two cases arose in which it makes sense to have a canonical form of image request URI:
76
75
77
-
* A level-0-compliant server based on pre-made images on a file system needs to know whether to use percent or pixels and the directory names, specify width only, width and height, etc.
78
-
* A level-2-compliant server may want to server may want to redirect to the canonical syntax for better cache performance.
76
+
* A server compliant at level 0 based on pre-made images on a file system needs to know which URI form to use in order to avoid either failing to support applications or having to generate multiple files for the same image. For example, are the region and size best specified by percent or pixel dimensions or `full`?
77
+
* A more capable server may redirect to the canonical syntax for better cache performance.
79
78
80
79
The canonical URI for an image may be specified in an HTTP Link Header with the attribute `rel=canonical`. See [Section 4.7 Canonical URI Syntax][canonical-uris] for details.
81
80
@@ -85,21 +84,21 @@ The value of this property is always the URI `http://iiif.io/api/image` which pu
85
84
86
85
The `protocol` property is required at all levels of compliance.
87
86
88
-
### Drop Rotation to Level 2 Compliance
87
+
### Drop Rotation from Level 1 Compliance
89
88
90
89
Rotation in multiples of 90 was previously a level 1 requirement. As this can be--and frequently is--handled in the browser via the HTML 5 `<canvas>` element or CSS instructions, the editors felt this was an unnecessary barrier to level 1 compliance.
91
90
92
91
### Added `sizes` property to Image Information document
93
92
94
-
Servers that do not support arbitrary size parameters for image requests may still wish make multiple sizes of an image available. The sizes that are available may be listed using the `w,h`syntax in the `sizes` property. Even when a server does support arbitrary resizing, it may be useful to report pre-cached or otherwise recommended sizes of an image, e.g. thumbnails.
93
+
Servers that do not support arbitrary size parameters for image requests may still wish make multiple sizes of an image available. The sizes that are available may be listed using the `w,h`syntax in the `sizes` property. Even when a server does support arbitrary resizing, it may be useful to report pre-cached or otherwise recommended sizes of an image, e.g. thumbnails.
95
94
96
95
### Published JSON-LD Context
97
96
98
-
The [context document][context] for the info.json document was never published. It is now available.
97
+
The [context document][context] for the `info.json` document was not published for version 1.1. It is now available.
99
98
100
-
### Support JSON-LD ContentType/Accept Header
99
+
### Support JSON-LD Content-Type/Accept header
101
100
102
-
As transition to JSON-LD (since it is not fully supported by browsers), clients that favor the "application/ld+json" media type in the accept header of their request may receive this as the content-type of the response. Also note that it is recommended that the server include the context URI in a Link header of the response if the request was for for "application/json". See [Section 5][info-request] and the documents to which it links for further details.
101
+
As transition to JSON-LD (since it is not fully supported by browsers), clients that favor the "application/ld+json" media type in the accept header of their request may receive this as the Content-Type of the response. Also note that it is recommended that the server include the context URI in a Link header of the response if the request was for for "application/json". See [Section 5][info-request] and the documents to which it links for further details.
103
102
104
103
[api-11]: /api/image/1.1/"Image API 1.1"
105
104
[api-compliance]: /api/image/2.0/#compliance-levels"Image API 6. Compliance Levels"
0 commit comments