mirror of
https://github.com/arsenetar/dupeguru.git
synced 2024-11-05 07:49:02 +00:00
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
|
# Copyright 2016 Hardcoded Software (http://www.hardcoded.net)
|
||
|
#
|
||
|
# This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||
|
# which should be included with this package. The terms are also available at
|
||
|
# http://www.gnu.org/licenses/gpl-3.0.html
|
||
|
|
||
|
from cocoa import proxy
|
||
|
from core.pe import _block_osx
|
||
|
from core.pe.photo import Photo as PhotoBase
|
||
|
|
||
|
class Photo(PhotoBase):
|
||
|
HANDLED_EXTS = PhotoBase.HANDLED_EXTS.copy()
|
||
|
HANDLED_EXTS.update({'psd', 'nef', 'cr2', 'orf'})
|
||
|
|
||
|
def _plat_get_dimensions(self):
|
||
|
return _block_osx.get_image_size(str(self.path))
|
||
|
|
||
|
def _plat_get_blocks(self, block_count_per_side, orientation):
|
||
|
try:
|
||
|
blocks = _block_osx.getblocks(str(self.path), block_count_per_side, orientation)
|
||
|
except Exception as e:
|
||
|
raise IOError('The reading of "%s" failed with "%s"' % (str(self.path), str(e)))
|
||
|
if not blocks:
|
||
|
raise IOError('The picture %s could not be read' % str(self.path))
|
||
|
return blocks
|
||
|
|
||
|
def _get_exif_timestamp(self):
|
||
|
exifdata = proxy.readExifData_(str(self.path))
|
||
|
if exifdata:
|
||
|
try:
|
||
|
return exifdata['{Exif}']['DateTimeOriginal']
|
||
|
except KeyError:
|
||
|
return ''
|
||
|
else:
|
||
|
return ''
|