Java で RFB プロトコル (VNC サーバー) を実装しています。PIXEL_FORMAT
プロトコルで提供されているを理解できません。ピクセル形式のデータ構造の定義は次のとおりです。
+--------------+--------------+-----------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+-----------------+
| 1 | U8 | bits-per-pixel |
| 1 | U8 | depth |
| 1 | U8 | big-endian-flag |
| 1 | U8 | true-color-flag |
| 2 | U16 | red-max |
| 2 | U16 | green-max |
| 2 | U16 | blue-max |
| 1 | U8 | red-shift |
| 1 | U8 | green-shift |
| 1 | U8 | blue-shift |
| 3 | | padding |
+--------------+--------------+-----------------+
RFB プロトコルは各フラグの意味を詳細に定義していますが、生の ARGB 画像の正しい値を決定することはできません。次の値を使用しています。
bits-per-pixel = 32
depth = 32
big-endian-flag = 1
true-color-flag = 1
red-max = 255
green-max = 255
blue-max = 255
red-shift = 0
green-shift = 0
blue-shift = 0
padding = 0
RealVNC クライアントを使用している間はグレースケール画像を取得し、TightVNC クライアントを使用している間は画像の 4 つの異なるレイヤーを並べて取得します。
適切なエンコーディングを取得するのを手伝ってくれる人はいますか?