Adding image fails if any operations done after loading and before add
Created originally on Bitbucket by marknsikora (Mark Sikora)
Doing any operation on a PIL/pillow image after loading causes the file pointer in the image to be lost and loading the image fails.
Example script
import PIL
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
img = PIL.Image.open('screenshot.png')
img.thumbnail((100, 100))
img = Image(img)
ws.add_image(img)
wb.save("sample.xlsx")
Output
Traceback (most recent call last):
File "./example.py", line 17, in <module>
wb.save("sample.xlsx")
File "./ENV/lib/python3.5/site-packages/openpyxl/workbook/workbook.py", line 409, in save
save_workbook(self, filename)
File "./ENV/lib/python3.5/site-packages/openpyxl/writer/excel.py", line 294, in save_workbook
writer.save()
File "./ENV/lib/python3.5/site-packages/openpyxl/writer/excel.py", line 276, in save
self.write_data()
File "./ENV/lib/python3.5/site-packages/openpyxl/writer/excel.py", line 78, in write_data
self._write_images()
File "./ENV/lib/python3.5/site-packages/openpyxl/writer/excel.py", line 117, in _write_images
self._archive.writestr(img.path[1:], img._data())
File "./ENV/lib/python3.5/site-packages/openpyxl/drawing/image.py", line 53, in _data
img.fp.seek(0)
AttributeError: 'NoneType' object has no attribute 'seek'