2

我有一个 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);
}

任何建议或工作解决方案的链接表示赞赏。

4

1 回答 1

4

因此,事实证明我在应用 Alpha 选项时使用了错误的方法:

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

我希望这仍然可以帮助任何尝试这种方法的人。

于 2016-04-11T06:11:12.293 回答