如何传递/管道转换命令的输出而不是保存到文件?

如何传递/管道转换命令的输出而不是保存到文件?

我制作了一个 HTML 文件,其中的图片为 base64 格式。我开始编写 bash 脚本,将文件夹图片以 base64 格式打印到这个 html 文件中。我成功了,我分享代码:

cat html_head.txt > fil.html
for i in *.jpg; do echo $(cat html_image_cell_start.txt) "data:image/jpeg;base64, " $(base64 $i) $(cat html_image_cell_end.txt) >> fil.html; done
cat html_foot.txt >> fil.html

但是这些图像文件之前是使用如下脚本调整大小(原始图像)制作的:

for i in *.jpg; do convert -auto-orient -thumbnail 160 $i thumb-$i; done;

这确实有效。

现在我想将这两个步骤放在同一个循环中。

问题是:我可以将数据/图像通过管道传输convertbase64(linux-)函数,而不是将其保存到文件(thumb-)吗?

稍后,它将被附加到文本文件(“html”文件)。

我很乐意接受一个答案,表明这一点(不需要循环)。

以下是命名的文件及其内容:

html_head.txt

<!doctype html><html><head></head><body>

html_图像_单元格起始.txt

<img src="

html_image_cell_end.txt

">

html_foot.txt

</body> </html>

答案1

Imagemagick 命令行

 convert -auto-orient -thumbnail 160 $i jpg:- | base64

相关内容