0

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

this._files.addFileFromStringAt(i,fileName,regexTest(rules,fileData));

这是来自 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”字符。

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

原来的

ffd8 ffe0 0010 4a46 4946 0001 0201 0048
0048 0000 ffe1 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 008e
8769 0004 0000 0001 0000 00a4 0000 00d0
000a fc80 0000 2710 000a fc80 0000 2710
4164 6f62 6520 5068 6f74 6f73 686f 7020

压缩

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
4

1 回答 1

0

我找到了方法addFileAt,它可以用来添加一个ByteArray。

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

它适用于图像!

于 2013-05-22T09:40:51.300 回答