diff options
Diffstat (limited to 'graphics/py-mcomix/files/patch-mcomix_image__tools.py')
-rw-r--r-- | graphics/py-mcomix/files/patch-mcomix_image__tools.py | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/graphics/py-mcomix/files/patch-mcomix_image__tools.py b/graphics/py-mcomix/files/patch-mcomix_image__tools.py deleted file mode 100644 index 5f1b46a02ec2..000000000000 --- a/graphics/py-mcomix/files/patch-mcomix_image__tools.py +++ /dev/null @@ -1,115 +0,0 @@ ---- mcomix/image_tools.py.orig 2016-02-12 18:51:58 UTC -+++ mcomix/image_tools.py -@@ -9,7 +9,6 @@ import gtk - from PIL import Image - from PIL import ImageEnhance - from PIL import ImageOps --from PIL.JpegImagePlugin import _getexif - try: - from PIL import PILLOW_VERSION - PIL_VERSION = ('Pillow', PILLOW_VERSION) -@@ -51,7 +50,38 @@ assert MISSING_IMAGE_ICON - GTK_GDK_COLOR_BLACK = gtk.gdk.color_parse('black') - GTK_GDK_COLOR_WHITE = gtk.gdk.color_parse('white') - -+def _getexif(im): -+ exif={} -+ try: -+ exif.update(im.getexif()) -+ except AttributeError: -+ pass -+ if exif: -+ return exif - -+ # Exif of PNG is still buggy in Pillow 6.0.0 -+ try: -+ l1,l2,size,lines=im.info.get('Raw profile type exif').splitlines() -+ if l2!='exif': -+ # Not valid Exif data. -+ return {} -+ size=int(size) -+ data=binascii.unhexlify(''.join(lines)) -+ if len(data)!=size: -+ # Size not match. -+ return {} -+ im.info['exif']=data -+ except: -+ # Not valid Exif data. -+ return {} -+ -+ # load Exif again -+ try: -+ exif.update(im.getexif()) -+ except AttributeError: -+ pass -+ return exif -+ - def rotate_pixbuf(src, rotation): - rotation %= 360 - if 0 == rotation: -@@ -300,14 +330,7 @@ def pil_to_pixbuf(im, keep_orientation=False): - ) - if keep_orientation: - # Keep orientation metadata. -- orientation = None -- exif = im.info.get('exif') -- if exif is not None: -- exif = _getexif(im) -- orientation = exif.get(274, None) -- if orientation is None: -- # Maybe it's a PNG? Try alternative method. -- orientation = _get_png_implied_rotation(im) -+ orientation = _getexit(im).get(274, None) - if orientation is not None: - setattr(pixbuf, 'orientation', str(orientation)) - return pixbuf -@@ -385,39 +408,6 @@ def enhance(pixbuf, brightness=1.0, contrast=1.0, satu - im = ImageEnhance.Sharpness(im).enhance(sharpness) - return pil_to_pixbuf(im) - --def _get_png_implied_rotation(pixbuf_or_image): -- """Same as <get_implied_rotation> for PNG files. -- -- Lookup for Exif data in the tEXt chunk. -- """ -- if isinstance(pixbuf_or_image, gtk.gdk.Pixbuf): -- exif = pixbuf_or_image.get_option('tEXt::Raw profile type exif') -- elif isinstance(pixbuf_or_image, Image.Image): -- exif = pixbuf_or_image.info.get('Raw profile type exif') -- else: -- raise ValueError() -- if exif is None: -- return None -- exif = exif.split('\n') -- if len(exif) < 4 or 'exif' != exif[1]: -- # Not valid Exif data. -- return None -- size = int(exif[2]) -- try: -- data = binascii.unhexlify(''.join(exif[3:])) -- except TypeError: -- # Not valid hexadecimal content. -- return None -- if size != len(data): -- # Sizes should match. -- return None -- im = namedtuple('FakeImage', 'info')({ 'exif': data }) -- exif = _getexif(im) -- orientation = exif.get(274, None) -- if orientation is not None: -- orientation = str(orientation) -- return orientation -- - def get_implied_rotation(pixbuf): - """Return the implied rotation in degrees: 0, 90, 180, or 270. - -@@ -429,9 +419,6 @@ def get_implied_rotation(pixbuf): - orientation = getattr(pixbuf, 'orientation', None) - if orientation is None: - orientation = pixbuf.get_option('orientation') -- if orientation is None: -- # Maybe it's a PNG? Try alternative method. -- orientation = _get_png_implied_rotation(pixbuf) - if orientation == '3': - return 180 - elif orientation == '6': |