Как обрезать изображение по пути отсечения?

У меня есть TIFF с одним путем отсечения, хранящимся в 8BimProfile. Теперь я хочу обрезать это изображение вдоль обтравочного контура.

Что я пробовал
Мой первый подход заключался в использовании метода MagickImage Clip(), который, похоже, ничего не делает:

using (var image = new MagickImage(pathOfFileToClip))
{
    image.Clip();
    image.Write(targetPath);
}

Обходной путь, который я сейчас использую, вызывает инструмент ImageMagick convert.exe:

var wrappedFilePath = "\"" + pathOfFileToClip + "\"";
var arguments = wrappedFilePath + " -alpha transparent -clip -alpha opaque -strip " + wrappedFilePath;
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
    WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden,
    FileName = @"C:\Program Files\ImageMagick-6.9.3-Q16\convert.exe",
    Arguments = arguments
};
process.StartInfo = startInfo;
process.Start();

Это прекрасно работает и обрезает изображение так, как я хочу. Но как я могу заставить это работать без EXE?

Простое использование аргументов командной строки, подобных этому, также не сработало:

using (var image = new MagickImage(pathOfFileToClip))
{
    image.AlphaColor = new MagickColor(Color.Transparent);
    image.Clip();
    image.AlphaColor = new MagickColor(Color.Black);
    image.Strip();
    image.Write(targetPath);
}

Приветствуются любые предложения или ссылки на рабочие решения.


person sekky    schedule 11.04.2016    source источник


Ответы (1)


Итак, оказывается, я использовал неправильный метод при применении опции Alpha:

    using (var image = new MagickImage(pathOfFileToClip))
    {
        image.Alpha(AlphaOption.Transparent);
        image.Clip();
        image.Alpha(AlphaOption.Opaque);
        image.Strip();
        image.Write(targetPath);
    }

Я надеюсь, что это все еще помогает любому, кто пробует этот подход.

person sekky    schedule 11.04.2016
comment
Strip() не требуется обрезать изображение. Strip просто удаляет все метаданные. - person Vortex852456; 31.05.2016