Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jvoisin
mat2
Commits
704367f9
Commit
704367f9
authored
May 15, 2022
by
jvoisin
Browse files
Add support for HEIC files
Thanks to Maxime Morin (
https://www.maijin.fr/
) for the patch.
parent
26397137
Pipeline
#96302
passed with stages
in 2 minutes and 30 seconds
Changes
4
Pipelines
9
Hide whitespace changes
Inline
Side-by-side
libmat2/images.py
View file @
704367f9
...
...
@@ -181,3 +181,23 @@ class PPMParser(abstract.AbstractParser):
line
=
re
.
sub
(
r
"\s+"
,
""
,
line
,
flags
=
re
.
UNICODE
)
fout
.
write
(
line
)
return
True
class
HEICParser
(
exiftool
.
ExiftoolParser
):
mimetypes
=
{
'image/heic'
}
meta_allowlist
=
{
'SourceFile'
,
'ExifToolVersion'
,
'FileName'
,
'Directory'
,
'FileSize'
,
'FileModifyDate'
,
'FileAccessDate'
,
'FileInodeChangeDate'
,
'FilePermissions'
,
'FileType'
,
'FileTypeExtension'
,
'MIMEType'
,
'MajorBrand'
,
'MinorVersion'
,
'CompatibleBrands'
,
'HandlerType'
,
'PrimaryItemReference'
,
'HEVCConfigurationVersion'
,
'GeneralProfileSpace'
,
'GeneralTierFlag'
,
'GeneralProfileIDC'
,
'GenProfileCompatibilityFlags'
,
'ConstraintIndicatorFlags'
,
'GeneralLevelIDC'
,
'MinSpatialSegmentationIDC'
,
'ParallelismType'
,
'ChromaFormat'
,
'BitDepthLuma'
,
'BitDepthChroma'
,
'NumTemporalLayers'
,
'TemporalIDNested'
,
'ImageWidth'
,
'ImageHeight'
,
'ImageSpatialExtent'
,
'ImagePixelDepth'
,
'AverageFrameRate'
,
'ConstantFrameRate'
,
'MediaDataSize'
,
'MediaDataOffset'
,
'ImageSize'
,
'Megapixels'
}
def
remove_all
(
self
)
->
bool
:
return
self
.
_lightweight_cleanup
()
libmat2/parser_factory.py
View file @
704367f9
...
...
@@ -11,6 +11,10 @@ T = TypeVar('T', bound='abstract.AbstractParser')
mimetypes
.
add_type
(
'application/epub+zip'
,
'.epub'
)
mimetypes
.
add_type
(
'application/x-dtbncx+xml'
,
'.ncx'
)
# EPUB Navigation Control XML File
# This should be removed after we move to python3.10
# https://github.com/python/cpython/commit/20a5b7e986377bdfd929d7e8c4e3db5847dfdb2d
mimetypes
.
add_type
(
'image/heic'
,
'.heic'
)
def
__load_all_parsers
():
""" Loads every parser in a dynamic way """
...
...
tests/data/dirty.heic
0 → 100644
View file @
704367f9
File added
tests/test_libmat2.py
View file @
704367f9
...
...
@@ -251,6 +251,12 @@ class TestGetMeta(unittest.TestCase):
meta
=
p
.
get_meta
()
self
.
assertEqual
(
meta
[
'Name'
],
'I am so'
)
def
test_heic
(
self
):
p
=
images
.
HEICParser
(
'./tests/data/dirty.heic'
)
meta
=
p
.
get_meta
()
self
.
assertEqual
(
meta
[
'ProfileCopyright'
],
'Public Domain'
)
self
.
assertEqual
(
meta
[
'ProfileDescription'
],
'GIMP built-in sRGB'
)
class
TestRemovingThumbnails
(
unittest
.
TestCase
):
def
test_odt
(
self
):
...
...
@@ -504,6 +510,11 @@ class TestCleaning(unittest.TestCase):
'EncodingSettings'
:
'Lavf52.103.0'
,
},
'expected_meta'
:
{},
},{
'name'
:
'heic'
,
'parser'
:
images
.
HEICParser
,
'meta'
:
{},
'expected_meta'
:
{},
}
]
...
...
jvoisin
@jvoisin
mentioned in issue
#170 (closed)
·
May 15, 2022
mentioned in issue
#170 (closed)
mentioned in issue #170
Toggle commit list
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment