ImageMagick создает большое пустое изображение без использования большого количества дисков - PullRequest
1 голос
/ 14 июня 2019

Как я могу создать большое пустое изображение с помощью ImageMagick, не используя гигабайты дискового пространства?

convert -debug All -size 100000x100000 canvas:white big_white.png

Это занимает не менее 8 ГБ дискового пространства, поскольку не будет работать с диском политики ImageMagick, установленным на 8 ГБ.

1 Ответ

1 голос
/ 14 июня 2019

Если ваша цель - создать пустой PNG размером 100 000 x 100 000, я бы порекомендовал вам libvips.Это очень экономно с ресурсами по сравнению с ImageMagick .

. Итак, для создания черного PNG-изображения размером 100000x100000 пикселей в терминале:

vips black black.png 100000 100000 --bands 3

на моей машине требуется 300 с и используется227 МБ ОЗУ.Я проверил:

/usr/bin/time -l vips black black.png 100000 100000 --bands 3

Если вы настаиваете на том, чтобы сделать этот белый, вы можете инвертировать его:

vips invert black.png white.png

, который занимает 360 секунд на моей машине и использует 406 МБ ОЗУ.


Для сравнения, ImageMagick требуется 3300 секунд и ??ГБ ОЗУ, чтобы сделать то же самое:

/usr/bin/time -l convert -size 100000x100000 canvas:white big_white.png

Кстати, вы должны быть более точными в отношении того, хотите ли вы использовать оттенки серого или цветной PNG, приемлемо ли изображение в палитре или нет, и хотите ли вы8 бит / семпл или 16 бит / семпл.

...