Php 可以用内存资源替换文件路径吗?
我正在编写一个使用蒙太奇的PHP脚本,蒙太奇是ImageMagick的一个扩展,可以创建图像的平铺数组。蒙太奇语法非常简单: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 但是,我正在动态生成这些图像,我不想为了运行这个命令而将它们写入磁盘。是否有某种方法可以在不将资源写入文件的情况下传递这些资源 (这不是一个真正的蒙太奇问题,而是一个可以适用于许多不同情况的一般性问题。) 任何帮助都会很好
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中。对吗?如果是这样,那就是完美的解决方案!