如果您设置了两个环境变量之一:
MAGICK_TEMPORARY_PATH
MAGICK_TMPDIR
然后 ImageMagick 将使用该目录作为其临时文件。所以,第一种检查方法是运行
env | grep -i MAGICK
看看你有没有设置。
如果失败,或者如果您没有设置环境变量,我知道找到 ImageMagick 在磁盘上缓存位置的最简单方法是打开缓存调试并强制 ImageMagick去磁盘。所以,我们可以打开缓存调试:
convert -debug cache ...
我们可以通过限制允许使用的 RAM 来强制 ImageMagick 进入磁盘:
convert -limit memory 100k ...
所以,如果我们把它们放在一起:
convert -debug cache -limit memory 100k -size 1000x1000 xc:gray image.jpg
2016-05-19T13:25:46+01:00 0:00.000 0.000u 6.9.4 Cache convert[46510]: cache.c/SetPixelCacheExtent/3500/Cache
extend gray[0] (/var/tmp/magick-46510CYSKWOdhlrym[3], disk, 8MB)
2016-05-19T13:25:46+01:00 0:00.010 0.000u 6.9.4 Cache convert[46510]: cache.c/OpenPixelCache/3776/Cache
open gray[0] (/var/tmp/magick-46510CYSKWOdhlrym[-1], Map, 1000x1000 7.629MiB)
而且,如果您仔细观察,您会发现它在我的 Mac OSX 上使用 /var/tmp - 您的系统可能有所不同,但这种技术应该会告诉您它在使用什么。
作为一个测试,我可以设置一个环境变量并检查 ImageMagick 是否正在使用它:
# Tell IM where to cache stuff on disk
export MAGICK_TEMPORARY_PATH=/tmp/TEMPPATH
# Force an operation that will require caching
convert -debug cache -limit memory 100k -size 1000x1000 xc:gray image.jpg
2016-05-19T14:09:51+01:00 0:00.000 0.000u 6.9.4 Cache convert[46584]: cache.c/SetPixelCacheExtent/3500/Cache
extend gray[0] (/tmp/TEMPPATH/magick-46584CivsEmIPjwv2[3], disk, 8MB)
2016-05-19T14:09:51+01:00 0:00.010 0.000u 6.9.4 Cache convert[46584]: cache.c/OpenPixelCache/3776/Cache
open gray[0] (/tmp/TEMPPATH/magick-46584CivsEmIPjwv2[-1], Map, 1000x1000 7.629MiB)
关键字:ImageMagick、环境变量、tmp、TEMPDIR、TEMPPATH、缓存、磁盘、缓存