我有一个大图像,必须用 image.save(fichier)
保存。我怎么可能显示保存状态的进度条?
这可能是一个微不足道的问题,但我真的不知道如何做到这一点,因为它是一个单行命令......
最佳答案
您可能无法使用内置的图像保存。
您可以估计保存时间(知道图像的大小,猜测 mb/s),然后设置一个进度条并使用计时器来更新它。
或者你可以有一个进度条,它会快速运行到最后并重新启动以显示一些事件而不是实际进度。
编辑:如果你真的必须有一个进度,你可以将图像数据“保存”在内存中,然后将内存写入磁盘,一次更新进度。
QImage image;
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
image.save(&buffer, "PNG"); // writes image into buffer in PNG format
然后将缓冲区写入磁盘
关于c++ - 文件保存期间的进度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11191535/