2016-04-11 4 views
0

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

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

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

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

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); 
} 

Любые предложения или ссылки на рабочих растворов оценены.

ответ

1

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

Я надеюсь, что это все-таки кто-нибудь, кто пытается этот подход помогает.

+0

Strip() не требуется обрезать изображение. Strip просто удаляет все метаданные. – Undercover1989