我正在尝试从Image Magik管道传输JPEG文件"转换"向其他人命令行程序以制定基准。有没有办法强制一个没有内置功能的程序从管道读取而不是从磁盘读取文件?
具有此类内置功能的程序示例是" CJPEG":
convert INFILE.JPG tga:- | cjpeg -outfile OUTFILE.JPG -targa
不是"
的程序示例jpegoptim --dest OUTFOLDER INFILE.JPG
理想情况下它会像这样工作(但它不会):
convert INFILE.JPG jpg:- | jpegoptim --dest OUTFOLDER -
我设法做到了这一点:
BASE64_IMG=$(convert INFILE.JPG jpg:- | base64)
和
JPG<(echo "${BASE64_IMG}" | base64 --decode) /dev/stdin | awk '{print $1}'
但我不知道该怎么办......
感谢您的帮助。
答案 0 :(得分:1)
您可以使用流程替换,如果,读取程序并不期望能够在输入中寻找随机位置。 (也就是说,它只能从文件的开头连续读取。)
版本不正确(程序需要编写为接受values = {1,0,1,1,0}
max = 0
for value = 6,1,-1 do
max = max + 2*index*value
end
作为文件名意味着标准输入;它不是shell为你做的事情):
-
变为
convert INFILE.JPG jpg:- | jpegoptim --dest OUTFOLDER -
jpegoptim --dest OUTFOLDER <(convert INFILE.JPG jpg:-)
是一种特殊的<(...)
语法,可以简化命名管道的使用。
bash