summaryrefslogtreecommitdiff
path: root/lib/images.py
blob: f4e884de838de383d6cfdcb6f86ed431815b9d42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'''
    Takes care about pictures formats
'''

import parser


class JpegStripper(parser.GenericParser):
    '''
        represents a jpeg file
    '''
    def _should_remove(self, field):
        '''
            return True if the field is compromizing
        '''
        field_list = frozeset(['start_image', 'app0', 'start_frame',
                'start_scan', 'data', 'end_image'])
        if field.name in field_list:
            return False
        elif field.name.startswith('quantization['):
            return False
        elif field.name.startswith('huffman['):
            return False
        return True


class PngStripper(parser.GenericParser):
    '''
        represents a png file
        see : http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/PNG.html
    '''
    def _should_remove(self, field):
        '''
            return True if the field is compromizing
        '''
        name = field.name
        if name.startswith('text['):  # textual meta
            return True
        elif name.startswith('utf8_text['):  # uncompressed adobe crap
            return True
        elif name.startswith('compt_text['):  # compressed adobe crap
            return True
        elif name == "time":  # timestamp
            return True
        else:
            return False