文件路径可以被内存资源替换吗?

时间:2012-10-06 06:20:20

标签: php mysql resources imagemagick montage

我正在编写一个使用Montage的PHP脚本,这是ImageMagick的一个扩展,它创建了平铺的图像数组。蒙太奇语法很简单:

montage image1.png image2.png image3.png -tile x1 -geometry 50x50 out.png

但是,我正在动态生成这些图像,我不想将它们写入磁盘只是为了运行此命令。有没有什么方法可以传递资源而不将它们写入文件?

(这不是真正的蒙太奇问题,而是一个可以适用于许多不同情况的一般性问题。)

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

正如我评论的那样,您可以找到一些tmpfs文件系统(例如df | grep tmpfs),例如/run并将您的文件放入其中。然后它们将存在于虚拟内存中(并且通常不需要任何磁盘I / O)。当然,他们占用的空间正在消耗虚拟内存资源(因此受限)。

BTW,在许多Linux系统上,编写小文件不会使用大量磁盘I / O,因为它们位于文件系统缓存中。

当然,任何tmpfs文件系统在每次重启时都会丢失所有内容,因此您不希望在内部保留重要的不可恢复数据。

答案 1 :(得分:0)

ImageMagick具有C和PHP的API。 PHP IMagick似乎有蒙太奇钩子。

http://us3.php.net/manual/en/imagick.montageimage.php

有关PHP IMagick用法的一般信息: http://us3.php.net/manual/en/imagick.examples-1.php