我通过网络发送了多个MessagePacket
和ScreenPacket
。但所有这些数据包后跟一个CommonHeaderPacket
,它告诉即将到来的数据包的类型,大小,ID,时间和校验和。所以我需要在发送之前知道数据包的大小
ScreenPacket
有一个_image:QImage
(jpeg),它也将通过网络进行压缩和序列化。我可以通过QImageWriter
在通过套接字发送时执行此操作。但在发送ScreenPacket
之前,我需要发送包含CommonHeaderPacket
的{{1}}。那么如何提前知道尺寸?因为QImage没有size
或setQuality()
方法
我不想在临时流中写它以提前知道大小。那么还有什么方法可以提前知道尺寸。
setCompression()
没有QImage
或setCompression
方法。 setQuality
有。但在写之前我需要知道ByteSize。和字节大小取决于压缩和质量
例如我需要将QImageWriter
保存到另一个QImage
Persistent storable Object
Quality
,Compression
。没有磁盘开销。
答案 0 :(得分:0)
是否可以帮助您使用QImageWriter
写入QBuffer
?通过这种方式,您可以避免磁盘开销,并且可以访问QByteArray
以获取其大小和数据,以将其直接推送到您的网络流中。所以你只需要对JPEG进行一次编码。