From 9fc4e1feac096be37903d080d476de1fc8cc8828 2017-07-29 03:13:52 From: Grant Nestor <grantnestor@gmail.com> Date: 2017-07-29 03:13:52 Subject: [PATCH] Extract width and height from gif base64 string --- diff --git a/IPython/core/display.py b/IPython/core/display.py index 21fa8bc..1333bff 100644 --- a/IPython/core/display.py +++ b/IPython/core/display.py @@ -965,8 +965,7 @@ def _pngxy(data): """read the (width, height) from a PNG header""" ihdr = data.index(b'IHDR') # next 8 bytes are width/height - w4h4 = data[ihdr+4:ihdr+12] - return struct.unpack('>ii', w4h4) + return struct.unpack('>ii', data[ihdr+4:ihdr+12]) def _jpegxy(data): """read the (width, height) from a JPEG header""" @@ -984,8 +983,11 @@ def _jpegxy(data): # read another block idx += 2 - h, w = struct.unpack('>HH', data[iSOF+5:iSOF+9]) - return w, h + return struct.unpack('>HH', data[iSOF+5:iSOF+9]) + +def _gifxy(data): + """read the (width, height) from a GIF header""" + return struct.unpack('<HH', data[6:10]) class Image(DisplayObject): @@ -1126,7 +1128,7 @@ class Image(DisplayObject): elif self.format == self._FMT_JPEG: w, h = _jpegxy(self.data) elif self.format == self._FMT_GIF: - w, h = _pngxy(self.data) + w, h = _gifxy(self.data) else: # retina only supports png return