0

私はいくつかMessagePacketScreenPacketネットワーク経由で送信しています。ただし、このすべてのパケットの後にCommonHeaderPacketは、次のパケットのタイプ、サイズ、ID、時間、およびチェックサムを通知する a が続きます。したがって、送信する前に Packet のサイズを知る必要があります。(jpeg)もあり、ネットワーク経由で圧縮およびシリアル化されます
ScreenPacket。これをソケット経由で送信しながら、これ_image:QImageを行うことができます。QImageWriterただし、 を送信する前に、を含むScreenPacketを送信する必要があります。どうすれば事前にサイズを知ることができますか?QImage にはorメソッドがないためです。 サイズを事前に知るために、一時的なストリームに書き込みたくありません。そのため、サイズを事前に知る方法は他に何がありますか。CommonHeaderPacketsizesetQuality()setCompression()

概要

QImagesetCompressionまたはsetQualityメソッドがありません。QImageWriterもっている。しかし、書き込む前に ByteSize を知る必要があります。バイトサイズは圧縮と品質に依存します。
たとえば、 を に変更して別のファイルに保存する必要がありQImageます。ディスクオーバーヘッドなし。Persistent storable ObjectQualityCompression

4

1 に答える 1

0

QImageWriterを使用してに書き込むと役立ちますQBufferか? このようにして、ディスクのオーバーヘッドを回避し、 にアクセスしQByteArrayてそのサイズとデータを取得し、それをネットワーク ストリームに直接プッシュできます。したがって、JPEG を一度だけエンコードする必要があります。

于 2011-04-29T08:23:11.017 に答える