1

我正在尝试在内存中创建图像的副本并将其用作控制台进程的 STDIN。

创建 InMemoryCopy:

using (FileStream fs = File.OpenRead(image))
{
   fs.CopyTo(inMemoryCopy);
}

启动进程并输入 STDIN:

p.StartInfo.Arguments = " jpg:fd:0" +
   " -resize 500" +
   " \"" + tmpFile + "\"";

p.Start();
//Reads in pbm file.
using (var streamReader = new StreamReader(inMemoryCopy))
{
  p.StandardInput.Write(streamReader.ReadToEnd());
  p.StandardInput.Flush();
  p.StandardInput.Close();
}

我遇到的问题是 imagemagick noww 不再将文件识别为图像了吗?使用的文件是 .jpg 但从 streamReader 看来它似乎没有作为有效的图像文件写入 STDIN?

由于我是一个非常新手,我用谷歌搜索并在这里搜索以找到答案,但无法弄清楚。

我如何将图像文件读入内存并将其用作控制台应用程序中的 STDIN(例如 imagemagick)。

非常感谢您的帮助!

4

1 回答 1

2

StreamReader 是一个文本阅读器。您可能希望将二进制数据写入标准输入基流。据此:我可以将二进制文件放入标准输入吗?C#

你可以做:

fs.CopyTo(p.StandardInput.BaseStream)
于 2013-07-05T00:40:22.053 回答