当前位置: 首页 > 知识库问答 >
问题:

ImageMagick unix外壳脚本不工作时与PHPshell_exec()

姬振濂
2023-03-14

我必须使用Fred的ImageMagick脚本创建图像的过渡序列,特别是fx过渡。

在我的PHP代码中,我将所有的图片调整为标准大小,然后我将所有这些图片重命名为pic000001.jpg,pic000002.jpg,pic000003.jpg等(我用$Count计数),那么我做:

$frameIndex=0;
$frames=18;

//for all the pic000001.jpg, pic000002.jpg, pic000003.jpg.... do a transition 
//between them
for($seq=1;$seq<$count;$seq++){

        //here I take a picture and the next(IE pic000001 and pic000002)
        echo shell_exec("fxtransitions -e swirl -f $frames -d 20 -p 50 $path/pic".str_pad($seq, 6, '0', STR_PAD_LEFT).".jpg $path/pic".str_pad(($seq+1), 6, '0', STR_PAD_LEFT).".jpg $path/fx%06d.jpg");

        //here I rename the temporany frames called 
        //fx000000.jpg to fx000035.jpg for each transition 
        //to a common index
        for($c=0;$c<($frames*2);$c++){
            rename("fx".str_pad($c, 6, '0', STR_PAD_LEFT).".jpg" ,str_pad($frameIndex, 6, '0', STR_PAD_LEFT).".jpg");
            $frameIndex++;
            }
    }
--- FILE DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---

(这肯定是脚本生成的消息),然后是如下消息:

Warning: rename(fx000000.jpg,000000.jpg): No such file or directory in /var/www/html/TEST/APP/generateVideo.php on line 168

因为图片没有生成(它揭示了对帧编号的高维是正确的,所以不要专注于此)。

请帮帮忙?如果您有一个替代fred的imagemagick脚本的方法来生成转换帧以生成视频,我们也会非常感激。

共有2个答案

戴化
2023-03-14

我在使用Fred的ImageMagick脚本中的文本清洁器时面临这个问题。解决方法是使用正确的路径tmp目录路径

就我而言

dir=“/var/www/html/textcleaner/images/”#建议为dir=“”或dir=“/tmp”#

这应该是可写的

还有文本清洁器。sh也将进入该项目。

督飞鸣
2023-03-14

我在使用Fred的ImageMagick脚本时遇到了这个问题。解决方案是使用您最喜欢的编辑器(vim、nano等)更新脚本文件(scriptname.sh),并设置正确的临时目录。见下文:

# set directory for temporary files
dir="."    # suggestions are dir="." or dir="/tmp"
#

就我而言,临时董事是“/tmp”

# set directory for temporary files
dir="/tmp"    # suggestions are dir="." or dir="/tmp"
#
 类似资料:
  • 我想使用CronJob在Kubernetes内部运行一个shell脚本,下面是我的CronJon.yaml文件: CronJob已被创建(kubectl apply -f CronJob.yaml)当我获得CronJob的列表时,我可以看到cron job ( kubectl get cj ),当我运行“kubectl get pods”时,我可以看到pod正在被创建,但是pod崩溃了。谁能帮我学

  • 我有一个VB脚本,它有一个相应的.bat文件,把它放在“C:\users\default\appdata\roaming\microsoft\windows\start menu\programs\startup”文件夹中。但是,在启动时,脚本不会完全运行。脚本应该创建任务栏快捷方式,但没有为我列出的Office产品创建快捷方式。 下面是脚本: 下面是.bat文件: 你知道为什么这行不通吗? 答:

  • 我是selenium的初学者,需要以下脚本的帮助,我正在尝试发送vai文本字段的值。下面是代码片段。 显示错误 线程“main”java中出现异常。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属性;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDri

  • 我编写了shell脚本文件,并将其与docker ENTRYPOINT一起使用,但当我运行docker image时,由于ENTRYPOINT代码行的原因,它停止了,没有任何错误日志 我的Dockerfile docker入口点。嘘 我的docker run命令 有什么问题??

  • 我试图传递一个参数到一个cmdline工具,它看起来像下面这样: 其中,“()”是工具所必需的,xyz-123存储在变量$var中,我从另一个函数获取该变量。 如果我硬编码“(xyz-123)”,该工具工作正常,但当我执行时,它会抛出一个错误:

  • 问题内容: 我需要这个shell脚本一些帮助。我有一个变量,代表一个IP / TCP标头。我需要按所选标题过滤流量捕获。 tcpdump命令的结果如下所示 我需要IP地址源和IP地址目标,在示例中,输出结果必须为 10.0.0.131.58363 > 239.255.255.250.1900 问题答案: 尝试直接在over中执行此操作: 这是坚如磐石的;)