PIL просто пытается защитить вас. Он не будет открывать большие изображения, поскольку это может быть вектор атаки для злоумышленника, чтобы дать вам большое изображение, которое будет расширяться, чтобы использовать всю память.
Поскольку вы не являетесь злонамеренным пользователем и не принимают изображения от кого-либо еще, вы можете просто отключить предел:
from PIL import Image
Image.MAX_IMAGE_PIXELS = None
Настройка Image.MAX_IMAGE_PIXELS
полностью отключает проверку. Вы также можете установить его (высокое) целое значение; по умолчанию это int(1024 * 1024 * 1024 / 4 / 3)
, около 90 миллионов пикселей или около 250 МБ несжатых данных для 3-канального изображения.
Обратите внимание, что по умолчанию все, что происходит, это предупреждение выпущен. Вы также можете отключить предупреждение:
import warnings
from PIL import Image
warnings.simplefilter('ignore', Image.DecompressionBombWarning)