1
0
mirror of synced 2024-06-08 23:37:49 +02:00
mat2/src/png.py

28 lines
965 B
Python
Raw Normal View History

2018-03-20 01:20:11 +01:00
import subprocess
import json
import cairo
from . import abstract
class PNGParser(abstract.AbstractParser):
mimetypes = {'image/png', }
2018-03-20 23:35:02 +01:00
meta_whitelist = {'SourceFile', 'ExifToolVersion', 'FileName',
'Directory', 'FileSize', 'FileModifyDate', 'FileAccessDate',
"FileInodeChangeDate", 'FilePermissions', 'FileType',
'FileTypeExtension', 'MIMEType', 'ImageWidth', 'BitDepth', 'ColorType',
'Compression', 'Filter', 'Interlace', 'BackgroundColor', 'ImageSize',
'Megapixels', 'ImageHeight'}
2018-03-20 01:20:11 +01:00
def get_meta(self):
out = subprocess.check_output(['exiftool', '-json', self.filename])
2018-03-25 17:42:29 +02:00
meta = json.loads(out.decode('utf-8'))[0]
2018-03-20 23:35:02 +01:00
for key in self.meta_whitelist:
meta.pop(key, None)
return meta
2018-03-20 01:20:11 +01:00
def remove_all(self):
surface = cairo.ImageSurface.create_from_png(self.filename)
surface.write_to_png(self.output_filename)
2018-03-20 23:35:02 +01:00
return True