簡體   English   中英

將QImage保存到QBuffer

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM