From d48dfc8e218c3e762a385f14d0c788115c2a72fa Mon Sep 17 00:00:00 2001 From: jvoisin Date: Tue, 20 Mar 2018 01:20:11 +0100 Subject: PNG support and automatic import! --- src/parsers/abstract.py | 5 +++-- src/parsers/png.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 src/parsers/png.py (limited to 'src/parsers') diff --git a/src/parsers/abstract.py b/src/parsers/abstract.py index 80bb812..c2d282f 100644 --- a/src/parsers/abstract.py +++ b/src/parsers/abstract.py @@ -1,9 +1,10 @@ class AbstractParser(object): + meta_list = set() + mimetypes = set() + def __init__(self, filename: str): self.filename = filename self.output_filename = filename + '.cleaned' - self.meta_list = set() - self.mimetypes = set() def get_meta(self): raise NotImplementedError diff --git a/src/parsers/png.py b/src/parsers/png.py new file mode 100644 index 0000000..3c0a507 --- /dev/null +++ b/src/parsers/png.py @@ -0,0 +1,18 @@ +import subprocess +import json + +import cairo + +from . import abstract + +class PNGParser(abstract.AbstractParser): + mimetypes = {'image/png', } + meta_list = set() + + def get_meta(self): + out = subprocess.check_output(['exiftool', '-json', self.filename]) + return json.loads(out)[0] + + def remove_all(self): + surface = cairo.ImageSurface.create_from_png(self.filename) + surface.write_to_png(self.output_filename) -- cgit v1.3