如何使用 AnimatedImage 或其他方式为超过 256 种颜色的图像(即不是 GIF)制作动画

How to Animate an Image with more than 256 colors (i.e. not a GIF) using AnimatedImage or otherwise

我可以在 Qt 5.9 中使用 AnimatedImage,它可以像这样处理 GIF;

import QtQuick 2.7
import QtQuick.Controls 2.2

ApplicationWindow
{
    visible: true
    width: 640
    height: 480

    Rectangle 
    {
        width: animation.width; 
        height: animation.height + 8

        AnimatedImage 
        {
            id: animation;
            source: "myanimation.gif"
        }

        Rectangle {

            height: 8
            width: animation.currentFrame/animation.frameCount * animation.width
            y: animation.height
            color: "red"

            Component.onCompleted: console.log("framecount ", animation.frameCount);
        }
    }
}

我也收到很多错误消息。这是一遍又一遍地打印;

QQmlExpression: Expression qrc:/main.qml:26:20 depends on non-NOTIFYable properties:
    QQuickAnimatedImage::frameCount

我从这里获取示例代码; http://doc.qt.io/qt-5/qml-qtquick-animatedimage.html

根本不起作用,将 frameCount 放入 属性 有问题,所以我在我的版本中进行了更改。

我想像 apng 一样为 png 制作动画。显然曾经有 mng 支持,但现在已经不存在了。

所以我调用 QMovie::supportedFormats 其中 returns 只有 GIF(在 Windows 上)。

我的问题:

我如何在支持非调色板颜色(例如 png 等)的格式上使用 AnimatedImage 是否有另一种方法可以使图像动画化工作?

感谢您提供任何信息。

Qt/QML 的标准安装似乎没有附带这些图像格式。但是,您可以将它们安装为插件。

参见: