【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

オートシェイプの分析ツール

クリップボードに格納されたオートシェイプのバイナリを調査するために作ったツールを公開します。パブリックドメインです。

自分に必要な範囲内しか実装していません。そのため分析できる情報は仕様のごく一部に限られています。何もないよりましというか、取っ掛かりくらいにはなるかもしれない程度のものです。

サンプルとして、昨日のプログラムでコピーした画像の分析結果を載せておきます。

data.Length = 28814 (0000708e)
*[00000000] f000(DggContainer),f,000:00006fd6=>[00006fde]
  *[00000008] f006(Dgg),0,000:00000018=>[00000028]
     [00000010] spidMax=00000402, cidcl=00000002,
                cspSaved=00000002, cdgSaved=00000001
     [00000020] dgid=00000001, cspidCur=00000002
  *[00000028] f001(BstoreContainer),f,001:00006fae=>[00006fde]
    *[00000030] f007(BSE),2,005:00006fa6=>[00006fde]
       [00000038] btWin32=05, btMacOS=05,
                  rgbUid=0ec96f6b-0fc4-4550-859e-cd3fd0517b01,
                  tag=00ff, size=00006f82, cRef=00000001, foDelay=00000000
                  usage=00, cbName=00, unused2=01, unused3=00
      *[0000005c] f01d(BlipJPEG),0,46a(JFIF):00006f7a=>[00006fde]
         [00000064] rgbUid=0ec96f6b-0fc4-4550-859e-cd3fd0517b01,tag=ff
         [00000075]-[00006fdd] size=00006f69
*[00006fde] f002(DgContainer),f,000:000000a8=>[0000708e]
  *[00006fe6] f008(Dg),0,001:00000008=>[00006ff6]
     [00006fee] csp=00000002, spidCur=00000401
  *[00006ff6] f003(SpgrContainer),f,000:00000090=>[0000708e]
    *[00006ffe] f004(SpContainer),f,000:00000028=>[0000702e]
      *[00007006] f009(Spgr),1,000:00000010=>[0000701e]
         [0000700e] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      *[0000701e] f00a(Sp),2,000(Min):00000008=>[0000702e]
         [00007026] spid=00000400, grfPersistent=00000005(Group, Patriarch)
    *[0000702e] f004(SpContainer),f,000:00000058=>[0000708e]
      *[00007036] f00a(Sp),2,000(Min):00000008=>[00007046]
         [0000703e] spid=00000401, grfPersistent=00000a00(HaveAnchor, HaveSpt)
      *[00007046] f00b(OPT),3,003:00000028=>[00007076]
         [0000704e] pid=rotation, fBid=0, fComplex=0, op=00000000(0)
         [00007054] pid=Pib, fBid=1, fComplex=0, op=00000001
         [0000705a] pid=pibName, fBid=1, fComplex=1, op=00000016
           [00007060] "Blue hills"
      *[00007076] f00e(Anchor),0,000:00000010=>[0000708e]
         [0000707e] x=0.00cm, y=0.00cm, w=15.00cm, h=11.25cm