使用 ImageMagick 打开随机 jpeg 的 Shell 脚本

2024-01-21

我有一大堆 jpeg。我想编写一个 shell 脚本,随机选择 5 个图像,然后使用 imageMagick 将它们放入蒙太奇中,然后打开这个蒙太奇文件。我希望这个过程每 10 秒发生一次。

我试过这个脚本

for f in *.jpg
do
shuf -ezn 5 * | xards -0 -n1 | montage *.jpg | display montage.jpg
done

但它不起作用

它打开所有图像并给出以下错误消息

image.sh 7: image.sh: Xards: not found 

go.sh 脚本与图像保存在同一文件夹/目录中,现在如下所示:

#!/bin/bash 

# Get list of files into array - just once at start
files=(*.jpg)

# Do forever
first=0
while :; do
   # Shuffle array
   files=( $(shuf -e "${files[@]}") )

   # Make montage of first 5 images in shuffled array
   magick montage ${files[0]} ${files[1]} ${files[2]} ${files[3]} ${files[4]} montage.jpg

   # Start displaying if first pass - leaving "display" running in background updating itself every second
   if [ $first -eq 0 ] ; then
      display -update 1 montage.jpg &
      first=1
   fi

   # Snooze 10 and repeat
   sleep 10
done

然而这正在回归

go.sh: 4: go.sh: Syntax error: "(" unexpected

然而,当我跑步时

bash go.sh

ImageMagick 在一个蒙太奇中打开文件夹中的所有图像,我收到以下错误

go.sh: line 12: magick: command not found

像这样的事情:

#!/bin/bash

# Get list of files into array - just once at start
files=(*.jpg)

# Do forever
first=0
while :; do
   # Shuffle array
   files=( $(shuf -e "${files[@]}") )

   # Make montage of first 5 images in shuffled array
   magick montage ${files[0]} ${files[1]} ${files[2]} ${files[3]} ${files[4]} montage.jpg

   # Start displaying if first pass - leaving "display" running in background updating itself every second
   if [ $first -eq 0 ] ; then
      display -update 1 montage.jpg &
      first=1
   fi

   # Snooze 10 and repeat
   sleep 10
done

或者这样可能更容易理解:

#!/bin/bash

# Get list of files into array
files=(*.jpg)

montage=/tmp/montage.jpg

# Create initial "Loading sign"
convert -background black -fill white -pointsize 64 label:"Loading" $montage
display -update 1 $montage &

# Do forever
while :; do
   # Shuffle array
   files=( $(shuf -e "${files[@]}") )

   # Make montage
   magick montage ${files[0]} ${files[1]} ${files[2]} ${files[3]} ${files[4]} $montage

   # Snooze 10 and repeat
   sleep 10
done

macOS 用户可能没有 ImageMagick 内置的 X11 支持,他们可以安装feh using homebrew像这样还有shuf(实际命令是gshuf)来自 GNU coreutils:

brew install feh
brew install coreutils

并尝试以下版本:

#!/bin/bash

# Get list of files into array
files=(*.jpg)

montage=/tmp/montage.jpg

# Create initial "Loading sign"
convert -background black -fill white -pointsize 64 label:"Loading" $montage

# Display "feh" running continuously in background passing the same image twice so we can cycle through the list!
feh --title "My Funky Montage" $montage $montage &
fehpid=$!

# Do forever
while :; do
   # Shuffle array
   files=( $(gshuf -e "${files[@]}") )

   # Make montage
   magick montage ${files[0]} ${files[1]} ${files[2]} ${files[3]} ${files[4]} $montage

   # Cycle feh to next image
   kill -s USR1 $fehpid

   # Snooze 10 and repeat
   sleep 10
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ImageMagick 打开随机 jpeg 的 Shell 脚本 的相关文章

  • 从 GNU Makefile 调用 `command -v find`

    我使用 shell bash 但我需要可移植性 和 GNU Makefile 我有这个代码 check commands command v find gt dev null command v asdf gt dev null 正如假设的
  • 如何在 Emacs shell 缓冲区中获得对“✖”等的支持?

    我正在运行一个进程 如果出现错误 则输出字符 如 Unicode 中定义 但是 如果在 Emacs shell 缓冲区 GNU Emacs 的 Aquamacs 发行版 中运行该进程 我根本看不到错误 使用 braeburn aquamac
  • Python 模块 shellquote/unshellquote? [复制]

    这个问题在这里已经有答案了 Python 标准库中是否有任何内容可以正确解析 解解析字符串以在 shell 命令中使用 我正在寻找 perl 的 python 模拟String ShellQuote shell quote print St
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • 如何让 Jenkins 2.0 在与结帐相同的目录中执行 sh 命令?

    这是我的 Jenkins 2 x 管道 node master stage Checkout checkout scm stage Build Pex sh build sh 当我运行此管道时 签出会按预期将代码放入工作区 但是它并没有期望
  • 无论 Rosetta 如何,获取 M1 Mac 的真实架构

    我需要检索 Mac 的真实架构 无论该进程是否通过 Rosetta 运行 现在在 Node js 中 process arch回报x64并在外壳中 uname m回报x86 64 感谢 Ouroborus 这张纸条 https develo
  • 在多个文件中进行查找/替换的最佳方法?

    最好的方法是什么 我不是命令行战士 但我想可能有一种使用方法grep and cat 我只想替换文件夹和子文件夹中出现的字符串 最好的方法是什么 如果这很重要的话 我正在运行 ubuntu 我将为使用的人提供另一个例子ag 银色搜索者 ht
  • 如何使用 echo 命令写入并附加到文件

    我正在尝试编写一个脚本 它将使用 echo 并写入 附加到文件 但我的语法中已经有了 字符串 说 echo I am Finding difficult to write this to file gt file txt echo I ca
  • 拼写检查 shell 脚本

    我有一些疑问 我对一个应该是简单拼写检查器的脚本有疑问 它的目的是 当发现错误的单词时 它会提示用户输入该单词的正确拼写 如果用户输入正确的拼写 则会显示更正的单词以及错误的单词 下面 在读完所有单词之后 但是 如果用户只是按 Enter
  • 如何转换 Base64 图像?

    我正在尝试使用 ImageMagick 中的 转换 命令行工具 我有一个 base64 编码的 png 文件 我需要将其转换为另一种格式 我正在看文档 http www imagemagick org Usage files and a 论
  • 在Java中执行.lnk文件

    我需要在java中执行 lnk文件 指向exe文件的lnk文件 我能怎么做 在 VB net 中我做 Process Start path 它有效 谢谢你的帮助 Use a 流程构建器 http download oracle com ja
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • Git - 显示远程分支的远程名称

    是否有一个 Git 命令可以显示远程分支的远程名称 目前 我坚持使用 shell utils 从远程分支引用中提取远程名称 例如 echo remote name branch name sed r s 1 remote name 有时出于
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 使用 ImageMagick 有效地将线扫描图像拼接在一起

    我正在寻找线扫描相机的替代品 用于体育计时 或者更确切地说 用于需要确定位置的部分 我发现普通工业相机可以轻松与商业相机解决方案的速度相匹配 每秒 gt 1000 帧 对于我的需求来说 通常计时的准确性并不重要 重要的是运动员的相对位置 我
  • 类似 jq 中的 sql join

    我有以下 json id 1 type folder title folder 1 id 2 type folder title folder 2 id 3 type item title item 1 folder 1 id 4 type
  • Bash 中所有匹配的^单词^替换^?

    为了澄清 我正在寻找一种方法来执行global搜索并替换先前使用的命令 word replacement 似乎只替换了第一场比赛 有没有一些set我无法选择的选项 尝试这个 echo oneone oneone gs one two Rep
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 是否有 ADB 命令来检查媒体是否正在播放

    我想使用 ADB 命令检查根植于终端的外部设备中是否正在播放音频 视频 我无法找到任何 ADB 命令 如果有 我尝试过 adb shell dumpsys media player 我想要一个命令来指定视频是否正在运行 您可以使用以下命令查

随机推荐

  • Grails 客户端验证

    您 如果您 如何使用 grails 管理客户端验证 您使用插件还是使用 javascript 框架反映您的约束 干杯 我个人没有使用过它们 但这两个插件可能会对您有所帮助 http grails org plugin javascript
  • 需要下一状态传播进行反向传播的神经网络强化学习

    我正在尝试构建一个包含卷积和 LSTM 使用 Torch 库 的神经网络 以通过 Q 学习或优势学习进行训练 这两者都需要在更新状态 T 的权重之前通过网络传播状态 T 1 必须进行额外的传播会降低性能 这很糟糕 但不是too坏的 然而 问
  • 优化 MySQL 导入(将详细 SQL 转储转换为快速 SQL 转储/使用扩展插入)

    我们正在使用 mysqldump 和选项 complete insert skip extended insert创建保存在 VCS 中的数据库转储 我们使用这些选项 和 VCS 可以轻松比较不同的数据库版本 现在导入转储需要相当长的时间
  • 德尔福和 i18n

    Delphi 是否以任何方式支持国际化 我已经看到我可以为项目添加不同的语言 但这似乎会创建 dfm 文件的多个实例 因此 语言不能在运行时更改 我说得对吗 您如何处理国际化 如果您这样做 有没有最佳实践 Delphi 附带了一些工具来执行
  • jQuery 发布请求(不是 AJAX)

    在 ASP NET MVC 应用程序中 我使用 jQuery 在按钮单击时发布数据
  • 当弹出窗口打开时禁用后台的所有内容

    我正在开发一个基于 HTML JQuery 和 CSS 的网页 我想在其中使用简单的 div 标签打开弹出窗口 我想在弹出窗口打开时禁用后台的所有内容 这意味着虽然弹出 div 对用户可见 但他或她不应该能够单击网页上的任何其他内容 弹出窗
  • 画布中的鼠标偏移 [fabric.js]

    我已经阅读了 3 5 个关于鼠标偏移的主题 但我仍然不明白哪里混乱了 就我而言 60 时一切正常 另外40 的鼠标是偏移的 有时对象位置与鼠标行为无关 IE 和 Chrome 是最混乱的 我尝试编辑样式表和父 div 但没有任何结果 最糟糕
  • 对象没有 hasOwnProperty 方法(即未定义)- IE8

    这看起来很奇怪 这是我在IE8控制台中的实验 typeof obj1 object obj1 hasOwnProperty typeof obj2 object obj2 hasOwnProperty undefined 关于什么可能导致这
  • 向 App Store 提交 iPhone 应用程序的流程? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 是否需要先支付 99 美元才能观看视频以向 App Store 提交 iPhone 应用程序 还是可以在任何地方免费获得 您可以加入开发者计划并免费观
  • Python正则表达式在集合内匹配

    测试时http gskinner com RegExr http gskinner com RegExr 在线正则表达式测试器 正则表达式 jpg bmp 当 jpg 或 bmp 存在时返回结果 但是 当我在 python 中运行此正则表达
  • SSRS 2005 缺少 Microsoft.ReportingServices.Interfaces.dll

    我在 c program files SQL Server 90 Tools Binn 中缺少此 DLL 引用 我假设这是因为我没有安装 2005 客户端 我安装了 2005 年的所有服务 数据库实例 报告服务实例 SSAS 和 SSIS
  • 持续更新文件

    最终 我需要将 Spotify API 中的信息提供给应用程序 以显示 当前歌曲 信息 包括提示时间 因此需要不断轮询 API 并更新应用程序轮询的数据源 我仍在尝试从流而不是文件的角度来思考数据 所以我想出了这个小实验来了解如何不断更新文
  • PM2 - 语法错误:严格模式之外尚不支持块范围声明

    我目前正在 Ubuntu 服务器上安装 NodeJS 服务 该应用程序是用 CoffeeScript 编写的 并且可以自行运行良好 这就是我设置项目的方式 cd test project nvm use v4 9 1 npm install
  • Zeroinfl“系统在计算上是奇异的”,而预测变量没有相关性

    我正在尝试对一年中工人缺勤天数的计数数据 因变量 进行建模 我有一组预测变量 包括有关工人 有关他们的工作等的信息 其中大多数是分类变量 因此 需要估计大量系数 83 但由于我有超过 600 000 行 我认为这应该不会有问题 此外 我的数
  • 当你调用一个包含yield的函数时会发生什么?

    I read here https stackoverflow com questions 19302530 python generator send function purpose 60042174 noredirect 1 comm
  • 如何创建支持 Ruby 的 shell 命令?

    我正在创建一个 gem 我希望能够在其中使用 shell 命令来执行 gem 中的功能 在更简单的上下文中 我需要创建一个 shell 脚本 该脚本在触发 shell 命令时执行带有选项的 Ruby 函数 做到这一点最简单的方法是什么 例如
  • std::tuple 和标准布局

    如果所有成员std tuple are of 标准布局类型 https stackoverflow com a 7189821 734069 就是它std tuple本身标准布局 用户定义的复制构造函数的存在使其变得不平凡 但我想知道它是否
  • 如何显示wordpress页面内容?

    我知道这真的很简单 但由于某种原因我没有想到 而且谷歌今天也没有帮助我 我想输出页面内容 该怎么做 我以为是这样的 Marc B 感谢您的评论 帮助我发现了这一点 p Sorry no posts matched your criteria
  • 是否可以扁平化 MongoDB 结果查询?

    我的 MongoDB 集合中有一个深度嵌套的集合 当我运行以下查询时 db countries findOne data country neighbor name 1 id 0 我最终在这里得到这个嵌套结果 data country ne
  • 使用 ImageMagick 打开随机 jpeg 的 Shell 脚本

    我有一大堆 jpeg 我想编写一个 shell 脚本 随机选择 5 个图像 然后使用 imageMagick 将它们放入蒙太奇中 然后打开这个蒙太奇文件 我希望这个过程每 10 秒发生一次 我试过这个脚本 for f in jpg do s