Image AS3 fzip:将图像添加到zip

Image AS3 fzip:将图像添加到zip,image,actionscript-3,zip,Image,Actionscript 3,Zip,我正在尝试使用fzip将图像添加到zip存档。 我已经使用字符编码UTF-8成功地添加了一些文本文档 这个.u files.addFileFromStringAt(i,文件名,regexTest(规则,文件数据)) 以下是Fzip类中的方法: public function addFileFromStringAt(index:uint, name:String, content:String, charset:String = "utf-8", doCompress:Boolea

我正在尝试使用fzip将图像添加到zip存档。 我已经使用字符编码UTF-8成功地添加了一些文本文档

这个.u files.addFileFromStringAt(i,文件名,regexTest(规则,文件数据))

以下是Fzip类中的方法:

        public function addFileFromStringAt(index:uint, name:String, content:String, charset:String = "utf-8", doCompress:Boolean = true):FZipFile {
        if(filesList == null) {
            filesList = [];
        }
        if(filesDict == null) {
            filesDict = new Dictionary();
        } else if(filesDict[name]) {
            throw(new Error("File already exists: " + name + ". Please remove first."));
        }
        var file:FZipFile = new FZipFile();
        file.filename = name;
        file.setContentAsString(content, charset, doCompress);
        if(index >= filesList.length) {
            filesList.push(file);
        } else {
            filesList.splice(index, 0, file);
        }
        filesDict[name] = file;
        return file;
    }
当我尝试使用此方法添加图像时,图像将无法读取。我试图以二进制格式打开这两个文件(原始文件和压缩文件),似乎新图像有许多“c3”字符

以下是原始文件和生成的文件:

起初的 压缩的
我找到了方法
addFileAt
,它可以用来添加ByteArray

public function addFileAt(index:uint, name:String, content:ByteArray = null, doCompress:Boolean = true):FZipFile

它适用于图像

在这个问题上,不止你一个人!我解压缩了一个fzip压缩图像,并在十六进制编辑器中检查了它和原始图像。我发现fzip映像和原始映像完全相同,只是fzip在映像前面添加了4个垃圾字节。这在保存压缩和保存未压缩时都会发生。这两次,4个字节都是0x0c 84 c6 37。我的回答没有解决问题吗?我不这么认为。下面是我的代码:您可以看到我正在使用的函数已经包含在字节数组中。我还在调查这个问题,我会在这里发布一个解决方案,这样其他人可以找到它。我找到了它。问题是我正在将Bytearray对象传递给addFileToZip。ByteArray显然在ByTestStream的前面有4个字节的元数据,因此这4个字节被写入了我与原始流一起保存到zip的字节数组中。
c3bf c398 c3bf c3a0 0010 4a46 4946 0001
0201 0048 0048 0000 c3bf c3a1 1539 4578
6966 0000 4d4d 002a 0000 0008 0007 0112
0003 0000 0001 0001 0000 011a 0005 0000
0001 0000 0062 011b 0005 0000 0001 0000
006a 0128 0003 0000 0001 0002 0000 0131
0002 0000 001c 0000 0072 0132 0002 0000
0014 0000 00c2 8ec2 8769 0004 0000 0001
0000 00c2 a400 0000 c390 000a c3bc c280
0000 2710 000a c3bc c280 0000 2710 4164
public function addFileAt(index:uint, name:String, content:ByteArray = null, doCompress:Boolean = true):FZipFile