Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 可以用内存资源替换文件路径吗?_Php_Mysql_Resources_Imagemagick_Montage - Fatal编程技术网

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

Php 可以用内存资源替换文件路径吗?,php,mysql,resources,imagemagick,montage,Php,Mysql,Resources,Imagemagick,Montage,我正在编写一个使用蒙太奇的PHP脚本,蒙太奇是ImageMagick的一个扩展,可以创建图像的平铺数组。蒙太奇语法非常简单: montage image1.png image2.png image3.png -tile x1 -geometry 50x50 out.png 但是,我正在动态生成这些图像,我不想为了运行这个命令而将它们写入磁盘。是否有某种方法可以在不将资源写入文件的情况下传递这些资源 (这不是一个真正的蒙太奇问题,而是一个可以适用于许多不同情况的一般性问题。) 任何帮助都会很好

我正在编写一个使用蒙太奇的PHP脚本,蒙太奇是ImageMagick的一个扩展,可以创建图像的平铺数组。蒙太奇语法非常简单:

montage image1.png image2.png image3.png -tile x1 -geometry 50x50 out.png
但是,我正在动态生成这些图像,我不想为了运行这个命令而将它们写入磁盘。是否有某种方法可以在不将资源写入文件的情况下传递这些资源

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


任何帮助都会很好

ImageMagick为C和PHP提供了API。PHP IMagick似乎有蒙太奇挂钩

PHP IMagick使用的一般信息:

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

顺便说一句,在许多Linux系统上,编写小文件不会占用大量磁盘I/O,因为它们位于文件系统缓存中


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

您可以使用基于内存的文件系统,如
tmpfs
您现在如何将蒙太奇与动态图像和PHP集成?它是用PHP生成图像,然后让PHP对蒙太奇进行shell调用吗?@whoolishseth:图像是由自定义C脚本生成的,然后我使用
passthru
来获取原始图像数据。我一直在把它写到文件中,然后使用蒙太奇,但我想跳过写到文件的部分…@BasileStarynkevitch:这是我第一次听说tmpfs-听起来很有趣。我想安装过程相当复杂?@BasileStarynkevitch:读了一点之后,听起来我可以将文件保存到
/dev/shm
(在Ubuntu上),实际上这会将文件保存到RAM中。对吗?如果是这样,那就是完美的解决方案!