如何通过stdin将[]字节传递给外部exiftool?

时间:2015-06-29 05:01:03

标签: go

我试图在golang中使用bash等价物:

cat image.jpg | exiftool -author=some_auth - > updated_image.jpg

exiftool ' - ' 选项让它从stdin读取,但是说我将图像存储在变量中     var img []bytes //in golang

我希望stdin包含来自img的字节和系统调用exiftool从stdin中读取这些字节,将结果(stdout)保存在另一个[]字节中 - 我是golang的新手,我该如何处理这个?< / p>

我不想保存到磁盘上的临时文件。

由于

1 个答案:

答案 0 :(得分:2)

这样的东西
out, err := os.Create("updated_image.jpg")
if err != nil {
    log.Fatal(err)
}
cmd := exec.Command("exiftool", "-author=some_auth", "-")
cmd.Stdout = out
cmd.Stdin = bytes.NewReader(img)
err = cmd.Run()
if err != nil {
    log.Fatal(err)
}
out.Close()

应该有用。

请注意,我还没有对代码进行测试。