<< Back

AzDrawing形式ファイル (*.adw) ver 1 の仕様

AzDrawing ver 1.xx の ADW ファイルの仕様です。
プレビューイメージが原寸大のままで ZIP 圧縮されている以外はほぼ APD と同じです。

※リトルエンディアン。

ADWヘッダ部
ヘッダ文字 7Byte "AZDWDAT"
バージョン数字 1Byte 0
全体のイメージ情報ヘッダ部
イメージの幅 2Byte イメージの幅(px)
イメージの高さ 2Byte イメージの高さ(px)
レイヤ数 2Byte ファイル中に存在するレイヤの数
レイヤ通算カウント 2Byte 今までいくつレイヤを作成したかという値。
新規レイヤを作成した場合のレイヤ名("レイヤ"+番号)に使われる。
※レイヤ名でしか使われないので適当でもかまいません。
カレントレイヤ番号 2Byte カレントレイヤのインデックス番号。
レイヤウィンドウから見て一番上にあるレイヤを 0 として、0,1,2,3.... となる。
レイヤイメージの圧縮形式 1Byte 0 でZIP圧縮、1 で単純なゼロ圧縮。
ゼロ圧縮が使われるのは自動保存機能で保存されたファイルのみ。通常は ZIP 圧縮です。
プレビューイメージ部
全レイヤを合成させたイメージ。
APD と違い、縮小されずに原寸大のままです。
幅と高さは↑のイメージ情報の値をそのまま使います。圧縮前のデータサイズは [イメージ幅×高さ×4 Byte]。
イメージは ZIP 圧縮されています。
データサイズ 4Byte 下に続くイメージデータの圧縮後のバイト数。
0 でプレビューイメージなし。
イメージデータ [上のサイズ分] 32BIT、ボトムアップの DIB データを ZIP 圧縮したデータ。
DIB のイメージ部分のデータのみです。

Xは左→右、Yは下→上の順で 32BIT の色データが並んでいる。
色は BYTE 順では BGRA、DWORD で読み込むと ARGB となる。

ZIP 圧縮/展開については、zlib にイメージデータや圧縮されたデータをそのまま渡します。
各レイヤデータ
以降、レイヤ数分のレイヤデータが順番に続く。
レイヤウィンドウから見て一番下のレイヤから順に格納されている。
レイヤ名 32Byte レイヤ名テキスト (Shift-JIS)。NULL 文字を含みます。
不透明度 1Byte レイヤの濃度。
0〜128 (0で透明、128で不透明)

※AzDrawing 上では 0〜100 となっていますが、内部では計算速度を上げるため 0〜128 の値となっています。
フラグ 1Byte [0bit]
0 で非表示状態、1 で表示状態

[1〜2bit]
アニメーション時の扱い。
(0 でフレーム、1 で背景、2 で表示しない)
線の色 4Byte レイヤの線の色。
DWORD で読み込むと ARGB の順になる(ファイルから 1Byte ずつ読み込むと BGRA)
イメージデータサイズ 4Byte レイヤのイメージデータを圧縮した後のバイト数
イメージデータ [上のサイズ分] レイヤのイメージデータ。
データは zlib を用いて ZIP 圧縮されています。

8BIT・トップダウンの DIB データです。
X は 左→右、Y は 上→下 の順で並んでいる。
Y 1列のデータサイズは 4 バイト単位なので、イメージの幅が 4 で割り切れない場合は、1列ごとに 1〜3Byte 余分に付加されます。

Y1列のサイズ = (width + 3) & (~3)

圧縮・展開する時はデータを丸ごと zlib に渡せばOKです。