Nano Hash - криптовалюты, майнинг, программирование

пути к файлам imagemagick? Получение «Система не может найти указанный файл с ошибкой»

Я не могу понять, куда мне нужно поместить файлы, чтобы ImageMagick мог их обработать. Я пытаюсь использовать его на своем веб-сайте ASP.NET MVC, и мне не повезло, что он находит мои файлы для обработки. И если да, то как мне указать, куда они будут выводиться?

Я искал здесь, и я должен что-то упустить: http://www.imagemagick.org/script/command-line-processing.php

Вот мой код для вызова процесса:

//Location of the ImageMagick applications
        private const string pathImageMagick = @"C:\Program Files\ImageMagick-6.7.3-8";
        private const string appImageMagick = "MagickCMD.exe";

 CallImageMagick("convert -density 400 SampleCtalog.pdf -scale 2000x1000 hi-res%d.jpg");


 private static string CallImageMagick(string fileArgs)
        {
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                Arguments = fileArgs,
                WorkingDirectory = pathImageMagick,
                FileName = appImageMagick,
                UseShellExecute = false,
                CreateNoWindow = true,
                RedirectStandardOutput = true
            };
            using (Process exeProcess = Process.Start(startInfo))
            {
                string IMResponse = exeProcess.StandardOutput.ReadToEnd();
                exeProcess.WaitForExit();
                exeProcess.Close();
                return !String.IsNullOrEmpty(IMResponse) ? IMResponse : "True";
            }
        }
05.01.2012

Ответы:


1

Мы делаем что-то подобное, но используем переменные среды (что выгодно, потому что работает в любой системе) для запуска cmd.exe, который мы передаем с convert и параметрами. Вот как мы создаем объект ProcessStartInfo:

// Your command
string command = "convert...";

ProcessStartInfo procStartInfo = new ProcessStartInfo {CreateNoWindow = true};
string fileName = Environment.GetEnvironmentVariable("ComSpec");
if (String.IsNullOrEmpty(fileName))
{
    // The "ComSpec" environment variable is not present
    fileName = Environment.GetEnvironmentVariable("SystemRoot");
    if (!String.IsNullOrEmpty(fileName))
    {
        // Try "%SystemRoot%\system32\cmd.exe"
        fileName = Path.Combine(Path.Combine(fileName, "system32"), "cmd.exe");
    }
    if ((String.IsNullOrEmpty(fileName)) || (!File.Exists(fileName)))
    {
        // If the comd.exe is not present, let Windows try to find it
        fileName = "cmd";
    }
}
procStartInfo.FileName = fileName;
procStartInfo.RedirectStandardInput = true;
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
Process proc = Process.Start(procStartInfo);

proc.StandardInput.WriteLine(command);
proc.StandardInput.Flush();

Затем мы читаем из proc.StandardOutput, чтобы получить сообщения об ошибках и коды результатов. После этого мы уничтожаем объекты.

Извините, если это не 100%, я скопировал это из более сложного ОО-кода.

05.01.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..