QMovie 是否支持 alpha 通道?

Does QMovie support an alpha channel?

我将 QImageReader 换成 QMovie 以轻松循环动画 GIF。但是,QMovie::currentImage() 返回的 QImage 没有 alpha 通道。如果我使用 QImageReader::read(),它确实有一个 alpha 通道。该文档没有提及两者之间关于 alpha 的任何区别。使用 QMovie 时有什么方法可以保留 alpha 通道吗?

QMovie movie( "ExampleAnimation.gif" );
movie.jumpToFrame( 0 );
const auto movieFrame = movie.currentImage();
DEBUG_LOG() << movieFrame.hasAlphaChannel(); // false

QImageReader reader( "ExampleAnimation.gif" );
reader.jumpToImage( 0 );
const auto readerImage = reader.read();
DEBUG_LOG() << readerImage.hasAlphaChannel(); // true

我弄清楚了这个问题,我想提供一个答案,以防其他人遇到类似情况。

我使用的 GIF 文件有一个 alpha 通道,但它没有任何透明像素。在内部,QMovie 调用 QPixmap::fromImage(),如果不使用它似乎会删除 alpha 通道。