首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用ProcessStartInfo与ImageMagick的Mogrify

利用ProcessStartInfo与ImageMagick的Mogrify
EN

Stack Overflow用户
提问于 2016-02-08 17:03:42
回答 1查看 280关注 0票数 0

把我的头发撕掉,因为它应该是可笑的简单!我的shell上有cd到C:\Program \ImageMagick-6.9.0-Q16,并使用了在我的机器上工作的命令字符串;它创建了预期的输出映像,没有问题:

转换"C:\Users\someguy\Debug\test_in.jpg“-resize 75x75 -colorspace RGB "C:\Users\someguy\Debug\test_out.jpg”

我试图在C#中使用一个简单的测试应用程序来实现这一点:

代码语言:javascript
复制
var proc = new Process
            {
                StartInfo = new ProcessStartInfo()
                {
                    //WorkingDirectory = @"C:\Program Files\ImageMagick-6.9.0-Q16\",
                    Arguments = //_arguments,
                    "convert \"" + InputPath + "\" -resize 75x75 \"" + OutputPath + "\""
                    ,
                    UseShellExecute = _useShellExecute,
                    RedirectStandardError = _redirectStandardError,
                    //RedirectStandardOutput = _redirectStandardOutput,
                    //CreateNoWindow = _createNoWindow,
                    //Verb = _verb,
                    FileName = @"C:\Program Files\ImageMagick-6.9.0-Q16\" + "convert.exe"
                }
            };
            var test = proc.StartInfo.Arguments.ToString();
            proc.Start();
            string error = proc.StandardError.ReadToEnd();
            proc.WaitForExit();

我尝试了几个这样的排列,使用convert.exe,mogrify.exe,动词作为"runas",工作目录设置为on或off.(请参阅注释掉的内容-我尝试过设置它)我已经提到了how to use imageMagick with C#,但是我继续得到相同的错误:

mogrify.exe:无法打开图像convert': No such file or directory @ error/blob.c/OpenBlob/2709. mogrify.exe: no decode delegate for this image format‘@ error/constitute.c/ReadImage/501。mogrify.exe:无法打开图像‘C:\Users\某人\Debug\test_out.jpg’:没有这样的文件或目录@error/blo.c/OpenBlob/2709。

我觉得我错过了一些最基本的东西,但我现在一点也不清楚。谁能提个建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-08 19:27:58

代码语言:javascript
复制
var proc = new Process
            {
                StartInfo = new ProcessStartInfo(_imageMagickFile)
                {
                    //WorkingDirectory = @"C:\Program Files\ImageMagick-6.9.0-Q16\",
                    Arguments = //_arguments,
                    "" + InputPath + " -resize 75x75 " + OutputPath + ""
                    ,
                    UseShellExecute = _useShellExecute,
                    RedirectStandardError = _redirectStandardError,
                    RedirectStandardOutput = _redirectStandardOutput,
                    CreateNoWindow = _createNoWindow,
                    Verb = _verb,
                    FileName = _imageMagickFile
                }
            };
            var test = proc.StartInfo.Arguments.ToString();
            proc.Start();
            string error = proc.StandardError.ReadToEnd();
            proc.WaitForExit();

我不知道为什么这个问题比原来的问题更有效,但它确实有效。使用convert.exe确实是正确的,而不是mogrify.exe。作为FYI,其他参数为ShellExecute = false,将重定向std err/out设置为true,谓词为runas。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35275183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档