UNPKG

iiif-processor

Version:

IIIF 2.1 & 3.0 Image API modules for NodeJS

52 lines (46 loc) 1.35 kB
const { Formats, Qualities } = require('../calculator/v3'); const debug = require('debug')('iiif-processor:v3:info'); // eslint-disable-line no-unused-vars const profileLink = 'https://iiif.io/api/image/3/level2.json'; const ComplianceProfile = { level: 'level2', uri: profileLink, qualities: new Set(['default']), formats: new Set(['jpg', 'png']) }; const IIIFExtras = { extraFormats: new Set(Formats.filter((format) => !ComplianceProfile.formats.has(format))), extraQualities: new Set(Qualities.filter((quality) => !ComplianceProfile.qualities.has(quality))), extraFeatures: [ 'canonicalLinkHeader', 'mirroring', 'profileLinkHeader', 'rotationArbitrary', 'sizeByDistortedWh', 'sizeByForcedWh', 'sizeByWhListed', 'sizeUpscaling' ] }; function infoDoc ({ id, width, height, sizes, max }) { const maxAttrs = { maxWidth: max?.width, maxHeight: max?.height, maxArea: max?.area }; return { '@context': 'http://iiif.io/api/image/3/context.json', id, type: 'ImageService3', protocol: 'http://iiif.io/api/image', profile: ComplianceProfile.level, width, height, sizes, ...maxAttrs, tiles: [ { width: 512, height: 512, scaleFactors: sizes.map((_v, i) => 2 ** i) } ], ...IIIFExtras }; } module.exports = { infoDoc, profileLink };