[英]Saving a QImage to QBuffer
我正在做這樣的事情:
QImage image(width, height, QImage::Format_RGB32);
frame.fill(QColor(255, 255, 255).rgb());
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
選項1:
out << image;
選項2:
out.writeRawData((char *) image.constBits(), image.byteCount()) ;
選項1相當慢,我不確定選項2是否是正確的方法?
您可以使用QImage::save
直接寫入QIODevice
,無論是緩沖區還是文件。
image.save(buffer);
與選項1相比,選項2看起來相當粗糙。 從美學上講,我當然會更喜歡選項1。 但是,與您提供的兩個選項相比,我更喜歡我提到的API。
您可以在此處閱讀有關圖像讀/寫的更多信息。
我剛剛做了類似的事情
QByteArray byteArray;
QBuffer buffer(&byteArray);
image.save(&buffer, "PNG"); // writes the image in PNG format inside the buffer
要輸出緩沖區,我將使用QString,我將其用於轉換為base64
QString imgBase64 = QString::fromLatin1(byteArray.toBase64().data());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.