/
FileUtil.as
94 lines (79 loc) · 2.26 KB
/
FileUtil.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package polly.atf2png
{
import flash.display.BitmapData;
import flash.display.JPEGEncoderOptions;
import flash.display.PNGEncoderOptions;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.geom.Matrix;
import flash.utils.ByteArray;
import flash.utils.Endian;
/**
* 文件操作便捷方法
* @author abo
*/
public class FileUtil
{
public function FileUtil()
{
}
public static function savePNGFile(data:BitmapData, file:File):void
{
saveImageFile(data, file, new PNGEncoderOptions());
}
public static function saveJPEGFile(data:BitmapData, file:File):void
{
saveImageFile(data, file, new JPEGEncoderOptions(80));
}
public static function saveImageFile(data:BitmapData, file:File, compressor:Object):void
{
if (data == null || file == null || compressor == null) return;
var bytes:ByteArray = data.encode(data.rect, compressor);
var fs:FileStream = new FileStream();
fs.open(file, FileMode.WRITE);
fs.writeBytes(bytes);
fs.close();
bytes.clear();
}
public static function saveXMLFile(xml:XML, file:File):void
{
if (xml == null || file == null) return;
var fs:FileStream = new FileStream();
fs.open(file, FileMode.WRITE);
fs.writeUTFBytes('<?xml version="1.0" encoding="UTF-8"?>\n');
fs.writeUTFBytes(xml.toXMLString());
fs.close();
}
public static function saveSmallAsset(bigData:BitmapData, smallScale:Number, smallFile:File):void
{
if (bigData == null || smallScale == 1 || smallFile == null) return;
var m:Matrix = new Matrix();
m.scale(smallScale, smallScale);
var smallData:BitmapData = new BitmapData(bigData.width * smallScale, bigData.height * smallScale, true, 0);
smallData.draw(bigData, m);
if (smallFile.name.indexOf(".jpg.") != -1)
{
saveJPEGFile(smallData, smallFile);
}
else
{
savePNGFile(smallData, smallFile);
}
}
public static function readBinFile(file:File):ByteArray
{
if (!file.exists)
{
return null;
}
var bytes:ByteArray = new ByteArray();
bytes.endian = Endian.LITTLE_ENDIAN;
var fs:FileStream = new FileStream();
fs.open(file, FileMode.READ);
fs.readBytes(bytes);
fs.close();
return bytes;
}
}
}