mirror of
https://github.com/xuthus83/pigallery2.git
synced 2024-11-03 21:04:03 +08:00
Adding support for metadataLoader to read ImageWidth and ImageHeight
exif tags #516
This commit is contained in:
parent
47507a5d67
commit
9f2cd38019
@ -191,7 +191,6 @@ export class MetadataLoader {
|
|||||||
exif.tags.CreateDate ||
|
exif.tags.CreateDate ||
|
||||||
exif.tags.ModifyDate) * 1000;
|
exif.tags.ModifyDate) * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exif.imageSize) {
|
if (exif.imageSize) {
|
||||||
metadata.size = {
|
metadata.size = {
|
||||||
width: exif.imageSize.width,
|
width: exif.imageSize.width,
|
||||||
@ -205,6 +204,14 @@ export class MetadataLoader {
|
|||||||
width: exif.tags.RelatedImageWidth,
|
width: exif.tags.RelatedImageWidth,
|
||||||
height: exif.tags.RelatedImageHeight,
|
height: exif.tags.RelatedImageHeight,
|
||||||
};
|
};
|
||||||
|
}else if (
|
||||||
|
exif.tags.ImageWidth &&
|
||||||
|
exif.tags.ImageHeight
|
||||||
|
) {
|
||||||
|
metadata.size = {
|
||||||
|
width: exif.tags.ImageWidth,
|
||||||
|
height: exif.tags.ImageHeight,
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
const info = imageSize(fullPath);
|
const info = imageSize(fullPath);
|
||||||
metadata.size = {width: info.width, height: info.height};
|
metadata.size = {width: info.width, height: info.height};
|
||||||
|
BIN
test/backend/assets/imageSizeError.jpg
Normal file
BIN
test/backend/assets/imageSizeError.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
16
test/backend/assets/imageSizeError.json
Normal file
16
test/backend/assets/imageSizeError.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"cameraData": {
|
||||||
|
"ISO": 160,
|
||||||
|
"exposure": 0.000537,
|
||||||
|
"fStop": 1.7,
|
||||||
|
"focalLength": 4.28,
|
||||||
|
"make": "Realme",
|
||||||
|
"model": "realme 3 Pro"
|
||||||
|
},
|
||||||
|
"creationDate": 1654876257000,
|
||||||
|
"fileSize": 76736,
|
||||||
|
"size": {
|
||||||
|
"height": 2128,
|
||||||
|
"width": 4608
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
import {expect} from 'chai';
|
import {expect} from 'chai';
|
||||||
import {MetadataLoader} from '../../../../../src/backend/model/threading/MetadataLoader';
|
import {MetadataLoader} from '../../../../../src/backend/model/threading/MetadataLoader';
|
||||||
import {Utils} from '../../../../../src/common/Utils';
|
import {Utils} from '../../../../../src/common/Utils';
|
||||||
@ -122,6 +123,12 @@ describe('MetadataLoader', () => {
|
|||||||
expect(Utils.clone(data)).to.be.deep.equal(expected);
|
expect(Utils.clone(data)).to.be.deep.equal(expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should load jpg with provided ImageWidth but missing imageSize', async () => {
|
||||||
|
const data = await MetadataLoader.loadPhotoMetadata(path.join(__dirname, '/../../../assets/imageSizeError.jpg'));
|
||||||
|
const expected = require(path.join(__dirname, '/../../../assets/imageSizeError.json'));
|
||||||
|
expect(Utils.clone(data)).to.be.deep.equal(expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
it('should load mp4', async () => {
|
it('should load mp4', async () => {
|
||||||
const data = await MetadataLoader.loadVideoMetadata(path.join(__dirname, '/../../../assets/video.mp4'));
|
const data = await MetadataLoader.loadVideoMetadata(path.join(__dirname, '/../../../assets/video.mp4'));
|
||||||
|
Loading…
Reference in New Issue
Block a user