使用 ImageMagick.NET 控制代码中的图像设置代码等效于命令行 -define

问题描述

我正在使用 Imagemagick.net 编写图像。我正在尝试控制输出图像中的一些设置。我不知道如何从代码修改这些设置,尽管它们在 ImageMagick 命令行 (ImageMagick defines) 中可用。

我对修改“预测器”设置特别感兴趣,当使用“Deflate”方法压缩图像时,该设置认为 3。

示例代码

        var collection = new MagickImageCollection(args[0]);
        IWriteDefines tiffWriteDefines= new TiffWriteDefines()
        {
            PreserveCompression = true
        };
        collection.Write(@"d:\outimage.tiff",tiffWriteDefines);

这些设置是通过指定命令行来控制的

Magick image.tif -define tiff:predictor=1

解决方法

经过一番努力,我找到了答案: 要修改此设置,您应该查看集合中的每个图像并:

foreach (var image in imageCollection)
{
    image.Settings.SetDefine(MagickFormat.Tiff,"predictor","1");
}

这为我解决了问题。