0

我正在通过网络发送MessagePacket几个ScreenPacket。但所有这些数据包后面都跟着一个CommonHeaderPacket告诉即将到来的数据包的类型、大小、id、时间和校验和。所以我需要在发送之前知道数据包的大小。
ScreenPacket有一个_image:QImage(jpeg),它也将通过网络进行压缩和序列化。我可以在通过QImageWriter套接字发送它时做到这一点。但在发送之前,ScreenPacket我需要发送CommonHeaderPacket包含size. 那我怎么能提前知道尺寸呢?因为 QImage 没有setQuality()orsetCompression()方法。
我不想将它写在临时流中以提前知道大小。那么还有什么方法可以提前知道尺寸。

概括

QImage没有setCompressionsetQuality方法。QImageWriter拥有。但我需要在写作之前知道 ByteSize。字节大小取决于压缩和质量。
例如,我需要QImage将 a 保存到另一个中,并在,Persistent storable Object中进行更改。没有磁盘开销。QualityCompression

4

1 回答 1

0

QImageWriter使用写入 a 对您有帮助QBuffer吗?这样,您将避免磁盘开销,并且您可以访问QByteArray以获取其大小和数据以将其直接推送到您的网络流中。所以你只需要对 JPEG 编码一次。

于 2011-04-29T08:23:11.017 回答