1

我正在尝试使用 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 上遇到过这种情况,但我将处理大量它们,并且需要知道这是否会成为问题。

4

1 回答 1

0

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

MagickNET.UseOpenCL = false;
于 2015-11-07T22:28:12.633 回答