使用Qt 4.8rc1,我有一个QImage想转换为png文件。似乎将其转换为png格式所需的时间比预期更长:对于一个800x800的空png,需要大约70毫秒。是否有方法可以使此过程更有效率,或者我只是受到png/zlib的固有限制?
这是我正在运行的基准测试:
这是我正在运行的基准测试:
#include <QtGui>
#include <QTimer>
int
main(int argc, char *argv[]) {
int times = 1000;
QString format("png");
QByteArray ba;
QBuffer* buffer = new QBuffer(&ba);
buffer->open(QIODevice::WriteOnly);
QTime timer;
timer.start();
while(times--) {
QImage image(800, 800, QImage::Format_RGB32);
image.save(buffer, format.toAscii(), -1);
}
int elapsed = timer.elapsed();
qDebug() << "Completed 1000 runs in" << elapsed << "ms. (" << (elapsed / 1000) << "ms / render )";
}
png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, PNG_FILTER_NONE);
)。不幸的是,QImage无法修改它,看起来我必须创建自己的QImageWriter。 - Michael Nutthttps://qt.gitorious.org/qt/qt/blobs/4.7/src/gui/image/qpnghandler.cpp#line695
)似乎没有调用png_set_filter()。这难道不意味着PNG过滤器是无? - Bill