上传前如何调整图片大小?
How to resize image before uploading it ?
在我的 AIR 应用程序中,用户可以拍照(从 CameraRoll 或 CameraUI)并将其保存到服务器。
有没有办法自动调整图像大小 (800x600) 以获得更轻的文件?
这是我的代码:
var now:Date = new Date();
var saveDirectory:String= "MyApp/PhotoUploads";
var fileName:String = "MyPhoto" + now.fullYear + now.month + now.day + now.hours + now.minutes + now.seconds + ".jpg";
var photoFile:File=File.documentsDirectory.resolvePath(saveDirectory+"/"+ fileName);
function imageSelected( event:MediaEvent ):void{
var mp:MediaPromise = event.data;
dataSource = mp.open();
readMediaData();
}
function readMediaData():void{
var imageBytes:ByteArray = new ByteArray();
dataSource.readBytes( imageBytes );
var stream:FileStream = new FileStream();
stream.addEventListener( Event.CLOSE,photoFileSaved);
stream.openAsync( photoFile,FileMode.WRITE);
stream.writeBytes( imageBytes );
stream.close();
}
function photoFileSaved(evt:Event):void{
photoUpload();
}
function photoUpload():void{
photoFile.upload( req );
photoFile.addEventListener( ProgressEvent.PROGRESS, progress_func );
photoFile.addEventListener( IOErrorEvent.IO_ERROR, ioErrorMedia );
photoFile.addEventListener( Event.COMPLETE, complete_func );
}
显然我做不到:
mp.width = 200;
mp.height= 200;
那我该怎么做呢?
var scale:Number = .6;
var m:Matrix = new Matrix();
m.scale (scale,scale);
var bmp:BitmapData = new BitmapData(sourceMc.width, sourceMc.height, false);
bmp.draw (sourceMc,m);
在我的 AIR 应用程序中,用户可以拍照(从 CameraRoll 或 CameraUI)并将其保存到服务器。
有没有办法自动调整图像大小 (800x600) 以获得更轻的文件?
这是我的代码:
var now:Date = new Date();
var saveDirectory:String= "MyApp/PhotoUploads";
var fileName:String = "MyPhoto" + now.fullYear + now.month + now.day + now.hours + now.minutes + now.seconds + ".jpg";
var photoFile:File=File.documentsDirectory.resolvePath(saveDirectory+"/"+ fileName);
function imageSelected( event:MediaEvent ):void{
var mp:MediaPromise = event.data;
dataSource = mp.open();
readMediaData();
}
function readMediaData():void{
var imageBytes:ByteArray = new ByteArray();
dataSource.readBytes( imageBytes );
var stream:FileStream = new FileStream();
stream.addEventListener( Event.CLOSE,photoFileSaved);
stream.openAsync( photoFile,FileMode.WRITE);
stream.writeBytes( imageBytes );
stream.close();
}
function photoFileSaved(evt:Event):void{
photoUpload();
}
function photoUpload():void{
photoFile.upload( req );
photoFile.addEventListener( ProgressEvent.PROGRESS, progress_func );
photoFile.addEventListener( IOErrorEvent.IO_ERROR, ioErrorMedia );
photoFile.addEventListener( Event.COMPLETE, complete_func );
}
显然我做不到:
mp.width = 200;
mp.height= 200;
那我该怎么做呢?
var scale:Number = .6;
var m:Matrix = new Matrix();
m.scale (scale,scale);
var bmp:BitmapData = new BitmapData(sourceMc.width, sourceMc.height, false);
bmp.draw (sourceMc,m);