代码之家  ›  专栏  ›  技术社区  ›  Oldes

XFL-什么是./bin/*.dat文件?

  •  5
  • Oldes  · 技术社区  · 14 年前

    未压缩的Adobe的flashxfl格式仍然压缩了很多内容。有人知道这些二进制*.dat文件的规范吗?

    2 回复  |  直到 14 年前
        1
  •  8
  •   Oldes    14 年前

    *.dat文件存储各种类型的媒体内容。到目前为止,我能说的是:

    1. 图像以JPEG格式存储,无需附加信息。这意味着只要重命名*.dat就足以获得原始图像。这样的文件以#{FFD8}开头
    2. 图像以某种内部原始格式存储。使用逆向工程,我可以说,例如带有原始像素数据#{FFFFFFFF}(1x1)的位图存储为:
    0305     ;raw bitmap identifier?
    0400     ;length of decompressed row data
    0100     ;width
    0100     ;height
    00000000 ;unknown
    14000000 ;width in twips
    00000000 ;unknown
    14000000 ;height in twips
    00       ;some flags - 01=image has transparency
    
    variant 1.:
    01       ;compressed data flag
    0200     ;length of compressed chunk
    7801     ;compressed chunk
    0A00     ;length of compressed chunk
    FBFFFFFF7F0009FA03FD ;compressed chunk
    0000     ;end of compressed stream
    
    variant 2.:
    00       ;data are uncompressed
    00000000
    00000000 ;unknown data - always zero?
    FFFFFFFF ;raw uncompressed ARGB data
    

    其中解压的数据是存储类型为ARGB的像素,因此使用大小信息应该足以从中获取图像。它使用ZLIB压缩(www.zlib.net)Flash使用的是压缩级别1,但是可以使用任何级别(但这不是必须的,因为源代码通常是完全压缩的)。

    1. 剩下的还不知道。

    DAT文件的名称也很重要!

        2
  •  0
  •   Henke37    12 年前

    文件名本身并不重要,但您当然需要在其他(通常是xml)文件中找到对文件名的引用。