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

使用Objective-C读取SWF标题

  •  0
  • gcstr  · 技术社区  · 15 年前

    我正在尝试使用NSData读取SWF文件的头。 根据SWF格式规范,我需要访问电影的宽度和高度读取位,而不是字节,我找不到在Obj-C中实现这一点的方法

    字节9到?:这里存储一个RECT(电影的边界)。它必须以二进制形式读取。首先,我们将第一个字节转换为二进制:“01100000” 48位+5位(RECT的头)=53位 用零填充以完成字节,直到达到8的倍数。53位+3位对齐位=56位(此RECT为7字节长度,7*8=56) 我用这个公式来确定所有这些东西:

    我从哪里开始?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Alex Reynolds    15 年前

    obc是一个可以与超级jc一起运行的代码集。

    因此,您可以使用基于C的库,如 libming 从SWF文件中读取字节。

    如果您需要将字节混洗到 NSData 对象,查看 -dataWithBytes:length:

        2
  •  1
  •   Jeremy W. Sherman    15 年前

    首先,查找具有兼容许可证的代码,该许可证已经满足您的要求。可以从Obj-C代码中使用C库,只需将它们链接(或安排动态链接)然后调用它们的函数。

    如果做不到这一点,请从 Binary Data Programming Guide for Cocoa NSData Class Reference . 您可能希望提取包含感兴趣位的字节,然后使用位掩蔽技术提取您关心的位。你可能会发现 BitTst() BitSet() BitClr() 功能和他们的朋友有用,如果他们还在雪豹那里;我不确定它们是否最终变成了碳的démodé部分。还有Posix setbit() clrbit() , isset() isclr() ^ | , & , ~ , << >> .