本文最后更新于:2025年4月14日 晚上
当使用PIL处理超过默认安全限制的大尺寸图像时,会触发DecompressionBombWarning警告。这个限制是为防止DOS攻击设定的,默认最大像素数为89478485,本文记录解决方案。
问题复现
Python 加载大尺寸图像时报错:
1 |
|
错误原因
这个错误是由 PIL(Python Imaging Library)库抛出的,意思是图像(或者说图片)大小超过了默认的安全限制。这个限制被称为“解压缩炸弹”限制,是为了防止恶意用户利用图像文件来进行拒绝服务(DOS)攻击而设置的。
在 PIL 中,默认情况下,对于单个图像,最大允许像素数量为 89478485 像素(即大约 30,000 x 30,000 像素),如果一个图像的总像素数量超过这个限制,就会抛出 DecompressionBombWarning
异常。
解决方案
如果确定要操作这个超出限制的图像,可以考虑通过设置 Image.MAX_IMAGE_PIXELS
来禁用该限制。例如:
1 |
|
禁用此限制也可能导致应用程序崩溃或消耗大量内存。因此,建议在必要时才禁用此限制,并尽可能控制图像大小。
参考资料
文章链接:
https://www.zywvvd.com/notes/coding/python/python-image-max-size/python-image-max-size/
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付
Image size exceeds limit of 89478485 pixels 解决方案
https://www.zywvvd.com/notes/coding/python/python-image-max-size/python-image-max-size/