Dataブロックで定義されているイメージサイズが異なる場合のみ有効となります。1-255:この値をNとして(N+15)/64と縦横比が算出される。※常に0で良い「共通パレット」「1画素のビット数」「共通パレットのソートフラグ」「共通パレットのパレット数」はこの順番で左詰にして1byteにします。「1画素のビット数」の値が3の場合は「+1」されて実際は4bitとなります。「共通パレットのパレット数」の値が3の場合は「+1」されて4bitとなり、「2^4」で16色となります。「1画素のビット数」と「共通パレットのパレット数」は同じ値になる事が多いです。Headerの「共通パレット」が「1」の場合に存在する。「共通パレットのパレット数」が0の場合は2色で「RGBRGB」の6byteのパレットが書き込まれます。BlockBlockには「画像ブロック」と「拡張ブロック」がありますが、今回はシンプルなGIFファイルを作成しますので画像ブロックのみを解説します。Headerと同様です。<固有パレット>共有パレットと同様<LZW最小コードサイズ>最初の辞書サイズの事で「LZW圧縮の最小ビット数」と呼ばれます。Headerの「1画素のビット数」に「+1」を加算した値と同じになる。Headerの「1画素のビット数」や「共通パレットのパレット数」のようにこの値に「+1」を加算したbit数となる。2色の場合は3bit(2)の辞書となる。2色の場合が2bit(1)だと「0、1、クリアコード、エンドコード」の4種類になっていきなり辞書が満タンになるので、それを回避する為です。LZW圧縮した画像データLZWで圧縮したデータを全て書き込む為には繰り返し出力します。Trailerファイルの終端で常に「0x3b」となる。LZWを使用してGIFファイルを作成するいよいよ、GIFファイルの生成に突入します。LZWとGIFファイルのフォーマットはもう解説済みですので、サンプルを提示したいと思います。このサンプルデータがあるとなしでは、作業効率が全然違うと思います。白黒3x3で2色の白黒のGIFファイルです。3x3のGIFファイルをペイントで拡大したものですGIFファイルをバイナリエディタで開くとこうなります。元のピクセルデータ(パレットインデックス)0,0,0,1,0,1,1,0,1圧縮後のデータ4,0,6,1,0,1,8,1,5圧縮データのビット長3,3,3,3,4,4,4,4,4後は圧縮データをビットに変換して右詰にして出力するだけです。カラフル3x3で2色のカラフルのGIFファイルです。3x3のGIFファイルをペイントで拡大したものですGIFファイルをバイナリエディタで開くとこうなります。メモサンプルのGIFファイルは「画像の減色」のページで作成できます。クリアコードは仕様書によるとGIFエンコーダーの好きな時点で出力可能です。今回、解説した箇所にクリアコードを出力しないと、生成したGIFファイルを読み込めないアプリがありますので注意してください。長時間、お疲れ様でした。(3)このブログについてオープンソースGitHubで複数のオープンソースを公開。Webアプリこのブログのマスターが作成した無料ツールです。(オープンソース)ブラウザで8/16/24/32bitの相互変換。Webの逆アセンブラブラウザでEXE/DLLファイルを逆アセンブルする※その他にも「プチラボ」でアプリを多数公開しています。3Dゲームこのブログのマスターが作成した無料ゲームです。短時間で遊べるファンタジーのオンラインRPG風ほのぼの癒し系のスマホアプリ※その他は「@ゲーム」で公開しています。※インストール不要でそのまま遊べます。スマートフォンこのブログのマスターが作成した無料アプリです。お主の画像減色お手軽にカメラの写真や画像を「高品質に減色」するお主は誰だ。(女性向け)ロボットこのブログのマスターが作成したロボットです。