Fix mess with canvas name for HSI
This commit is contained in:
parent
dccec35f77
commit
00c72fd17b
@ -16,8 +16,12 @@ export default async function generateCanvas(manifestId, name) {
|
|||||||
const canvas = new Canvas(IIIF_API_VERSION, BASE_URL);
|
const canvas = new Canvas(IIIF_API_VERSION, BASE_URL);
|
||||||
const manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
|
const manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
|
||||||
manifest.generateID(manifestId);
|
manifest.generateID(manifestId);
|
||||||
|
|
||||||
canvas.generateID(manifestId, name);
|
canvas.generateID(manifestId, name);
|
||||||
|
|
||||||
|
let filename = await Common.getImageName(canvas)
|
||||||
|
|
||||||
|
console.log('Filename: ' + filename);
|
||||||
|
|
||||||
let label = name
|
let label = name
|
||||||
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
||||||
return `C${c}. ${number}`;
|
return `C${c}. ${number}`;
|
||||||
@ -28,8 +32,8 @@ export default async function generateCanvas(manifestId, name) {
|
|||||||
}
|
}
|
||||||
canvas.label = label;
|
canvas.label = label;
|
||||||
|
|
||||||
const image = new Image(canvas.id);
|
const image = new Image(canvas.id, filename);
|
||||||
image.generateID(process.env.IMAGE_SERVER_URL, await Common.getImageName(canvas));
|
image.generateID(process.env.IMAGE_SERVER_URL, filename);
|
||||||
const imgSize = await Common.getImageSize(image.id);
|
const imgSize = await Common.getImageSize(image.id);
|
||||||
image.setSize(imgSize.height, imgSize.width);
|
image.setSize(imgSize.height, imgSize.width);
|
||||||
|
|
||||||
@ -41,5 +45,11 @@ export default async function generateCanvas(manifestId, name) {
|
|||||||
|
|
||||||
canvas.addImage(image);
|
canvas.addImage(image);
|
||||||
|
|
||||||
return canvas.toObject();
|
return canvas.toObject();
|
||||||
|
/**
|
||||||
|
const manifest = new Manifest(IIIF_API_VERSION, BASE_URL);
|
||||||
|
manifest.generateID(manifestId);
|
||||||
|
|
||||||
|
return Common.createCanvas(manifest, name, manifestId).toObject();
|
||||||
|
*/
|
||||||
}
|
}
|
@ -31,7 +31,8 @@ router.get('/iiif/:manifestid/canvas/:name', async function(req, res) {
|
|||||||
try {
|
try {
|
||||||
canvas = await generateCanvas(req.params.manifestid, req.params.name)
|
canvas = await generateCanvas(req.params.manifestid, req.params.name)
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
res.status(500).json({status: 500, message: 'There was an error processing this request'});
|
res.status(500).json({status: 500, message: 'There was an error processing this request: ' + error});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
res.json(canvas);
|
res.json(canvas);
|
||||||
});
|
});
|
||||||
|
@ -144,13 +144,28 @@ Common.getImageSize = async function (imageId) {
|
|||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get image name for given canvas
|
* Get image name for given canvas
|
||||||
|
* @todo Use regex in filter!!
|
||||||
* @param {Canvas} canvas
|
* @param {Canvas} canvas
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
Common.getImageName = async function (canvas) {
|
Common.getImageName = async function (canvas) {
|
||||||
const images = await this.getImageList(canvas.resourceId);
|
const images = await this.getImageList(canvas.resourceId);
|
||||||
|
|
||||||
return images.filter(i => i.includes(canvas.name))[0];
|
let name = canvas.name;
|
||||||
|
|
||||||
|
// Adjust canvas name for HSI with PCA...
|
||||||
|
if (/pc(1|3)/.test(name)) {
|
||||||
|
name = name.replace(
|
||||||
|
/pc((1|3))/,
|
||||||
|
function (match, group1) {
|
||||||
|
return `_HSI_PC${group1}`;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('Canvas name: ' + name);
|
||||||
|
|
||||||
|
return images.filter(i => i.includes(name))[0];
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Create a canvas from an image filename
|
* Create a canvas from an image filename
|
||||||
@ -172,10 +187,9 @@ Common.createCanvas = async function (manifest, filename) {
|
|||||||
dn: 2
|
dn: 2
|
||||||
};
|
};
|
||||||
|
|
||||||
const canvasName = filename.split('_')[namePos[manifest.technique]]
|
let canvasName = filename.split('_')[namePos[manifest.technique]]
|
||||||
.replace(/\.\w{1,3}$/, '');
|
.replace(/\.\w{1,3}$/, '');
|
||||||
|
|
||||||
canvas.generateID(manifest.resourceId, canvasName);
|
|
||||||
let label = canvasName
|
let label = canvasName
|
||||||
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
.replace(/c(\w{1,2})0+(\d+).*(\.\w{2,3})?$/i, function (str, c, number) {
|
||||||
return `C${c}. ${number}`;
|
return `C${c}. ${number}`;
|
||||||
@ -183,8 +197,10 @@ Common.createCanvas = async function (manifest, filename) {
|
|||||||
// Add PCA to canvas label for HSI images
|
// Add PCA to canvas label for HSI images
|
||||||
if (manifest.technique === 'hsi') {
|
if (manifest.technique === 'hsi') {
|
||||||
label += ` ${filename.split('_')[3].replace(/\..*$/,'')}`;
|
label += ` ${filename.split('_')[3].replace(/\..*$/,'')}`;
|
||||||
|
canvasName += `${filename.split('_')[3].replace(/\..*$/,'')}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
canvas.generateID(manifest.resourceId, canvasName.toLowerCase());
|
||||||
canvas.label = label;
|
canvas.label = label;
|
||||||
|
|
||||||
let image = new Image(canvas.id);
|
let image = new Image(canvas.id);
|
||||||
|
Loading…
Reference in New Issue
Block a user