第二帧 GIF 调整大小后质量下降 Magick.NET

Quality drop from 2nd frame GIF Resize Magick.NET

我正在尝试使用 Magick.NET 调整 gif 的大小。 这个 gif 有 80 帧,使用下面的代码调整它的大小会导致第一帧之后的每一帧都非常模糊,并且只有第一帧文件大小的一半多一点。

第一帧和第二帧之间唯一发生变化的是:

ColorType : TrueColor to TrueColorAlpha
BoundingBox.X : 1 to 2
BoundingBox.Y : 0 to 1
FileSize : 15525 to 9923
HasAlpha : false to true

这是我现在使用的代码:

        using (MagickImageCollection collection = new MagickImageCollection(filepath))
        {
            collection.Coalesce();
            int i = 0;

            foreach (MagickImage image in collection)
            {
                image.Resize(newWidth, newHeight);
                image.Write("CompressorTemp\" + i + ".jpg");
                i++;
            }

            // Save the result
            collection.Write(filepath);
        }

我只在这张 gif 上遇到过这种情况,但我会处理大量的它们,需要知道这是否会成为问题。

我怀疑您 运行 遇到了一个 OpenCL 错误,该错误将在 Magick.NET (7.0.0.0022) 的下一个版本中修复。解决方法是禁用 OpenCL:

MagickNET.UseOpenCL = false;