summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2018-04-16 22:27:29 +0200
committerjvoisin2018-04-16 22:27:29 +0200
commite34bc19f7126b80764a4c8747a7a2a1636289396 (patch)
tree577ce5fc2de9c82f50bc70030b9ad30265b0622e
parent4b92bef2193bb02e914eb7aedc04f22468248f9c (diff)
Add support for BMP
To be completely honest, BMP have no metadata, but we still add it, just in caseā„¢
-rw-r--r--src/images.py14
-rw-r--r--tests/data/dirty.bmpbin0 -> 5746 bytes
-rw-r--r--tests/test_libmat2.py15
3 files changed, 29 insertions, 0 deletions
diff --git a/src/images.py b/src/images.py
index 06f3e22..707207b 100644
--- a/src/images.py
+++ b/src/images.py
@@ -75,3 +75,17 @@ class TiffParser(GdkPixbufAbstractParser):
75 'FileTypeExtension', 'ImageHeight', 'ImageSize', 'ImageWidth', 75 'FileTypeExtension', 'ImageHeight', 'ImageSize', 'ImageWidth',
76 'MIMEType', 'Megapixels', 'SourceFile'} 76 'MIMEType', 'Megapixels', 'SourceFile'}
77 77
78
79class BMPParser(GdkPixbufAbstractParser):
80 mimetypes = {'image/bmp', 'image/x-ms-bmp'}
81 meta_whitelist = {'SourceFile', 'ExifToolVersion', 'FileName', 'Directory',
82 'FileSize', 'FileModifyDate', 'FileAccessDate',
83 'FileInodeChangeDate', 'FilePermissions', 'FileType',
84 'FileTypeExtension', 'MIMEType', 'BMPVersion', 'ImageWidth',
85 'ImageHeight', 'Planes', 'BitDepth', 'Compression', 'ImageLength',
86 'PixelsPerMeterX', 'PixelsPerMeterY', 'NumColors',
87 'NumImportantColors', 'RedMask', 'GreenMask', 'BlueMask',
88 'AlphaMask', 'ColorSpace', 'RedEndpoint', 'GreenEndpoint',
89 'BlueEndpoint', 'GammaRed', 'GammaGreen', 'GammaBlue', 'ImageSize',
90 'Megapixels'}
91
diff --git a/tests/data/dirty.bmp b/tests/data/dirty.bmp
new file mode 100644
index 0000000..be9094d
--- /dev/null
+++ b/tests/data/dirty.bmp
Binary files differ
diff --git a/tests/test_libmat2.py b/tests/test_libmat2.py
index 34f7301..ae04dc2 100644
--- a/tests/test_libmat2.py
+++ b/tests/test_libmat2.py
@@ -307,3 +307,18 @@ class TestCleaning(unittest.TestCase):
307 self.assertEqual(p.get_meta(), {}) 307 self.assertEqual(p.get_meta(), {})
308 308
309 os.remove('./tests/data/clean.tiff') 309 os.remove('./tests/data/clean.tiff')
310
311 def test_bmp(self):
312 shutil.copy('./tests/data/dirty.bmp', './tests/data/clean.bmp')
313 p = images.BMPParser('./tests/data/clean.bmp')
314
315 meta = p.get_meta()
316 self.assertEqual(meta, {}) # bmp has no meta :)
317
318 ret = p.remove_all()
319 self.assertTrue(ret)
320
321 p = images.BMPParser('./tests/data/clean.bmp.cleaned')
322 self.assertEqual(p.get_meta(), {})
323
324 os.remove('./tests/data/clean.bmp')