【发布时间】:2021-11-24 10:24:53
【问题描述】:
使用 ImageMagick 调整 JPG 大小时,-limit 选项似乎被忽略了。
以下命令使用docker 在可用内存有限 (100MB) 的机器上模拟运行 ImageMagick:ImageMagick 命令通过 4958 × 6198 JPEG(原始文件大小:5.5MB)来调整大小,-limit memory 5MiB .
结果是 ImageMagick 被容器的 OOM Killer 杀死,这意味着 ImageMagick 尝试分配超过 ~100MB 而不是保持在它被指示的 ~5MB 限制内。
如果您增加(或删除)docker run 上的 --memory 100m 标志,则该命令将成功:
# Download a 5.5MB JPEG (4958 × 6198)
curl 'https://images.unsplash.com/photo-1534970028765-38ce47ef7d8d?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&dl=trail-5yOnGsKUNGw-unsplash.jpg' \
-o 5500kb-image.jpg
docker run --memory 100m \
-v $(pwd):/imgs \
dpokidov/imagemagick \
/imgs/5500kb-image.jpg \
-debug All -limit memory 5MiB -limit map 10MiB -resize 400 \
/imgs/5500kb-image-resized.jpg
在调整 JPEG 大小时如何使用内存受限的 ImageMagick?
【问题讨论】:
标签: memory imagemagick out-of-memory imagemagick-convert