| processo |
14.09.2011 18:29 |
syegorius, сам 2 дня искал как это сделать, и вот собрал по кусочкам
Код AS3:
private function _onDataLoaded(e:Event){
var tempFileRef:FileReference = FileReference(e.target) ;
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, _onImageLoaded) ;
_loader.loadBytes (tempFileRef.data) ;
trace ("onDataLoaded");
pgUpload.visible = false;
}
private function _onImageLoaded(e:Event){
_bitmap = Bitmap(e.target.content);
_bitmap.smoothing = true;
var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(_resizeBitmap(_bitmap.bitmapData));
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("uploads.php?name=image.jpg&dir=1");//(path+"upload.php?name=image.jpg&dir="+grId);
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_self");
}
private function _resizeBitmap(bitmapData:BitmapData):BitmapData{
if (bitmapData.width <= _MAX_WIDTH && bitmapData.height <= _MAX_HEIGHT){
return bitmapData.clone();
}
var myMatrix:Matrix = new Matrix();
var coefW:Number = _MAX_WIDTH / bitmapData.width;
var coefH:Number = _MAX_HEIGHT / bitmapData.height;
var multiplier:Number;
if (coefW > coefH){
multiplier = coefH;
} else {
multiplier = coefW;
}
myMatrix.createBox(multiplier, multiplier, 0, 0, 0);
var newBitmapData:BitmapData = new BitmapData(multiplier * bitmapData.width, multiplier * bitmapData.height, true, 0xFFFFFF);
newBitmapData.draw(bitmapData, myMatrix , null, null, null, true);
return newBitmapData;
}
_onDataLoaded отправляется после выбора изображения
Код AS3:
private function selectPhotos(e:MouseEvent){
fileUp = new FileReference;
fileUp.addEventListener(Event.SELECT, selectHandler);
fileUp.addEventListener(Event.CANCEL, cancelHandler);
fileUp.browse([imagesFilter]);
}
public function selectHandler(event:Event){
fileUp.load();
fileUp.addEventListener(Event.COMPLETE, _onDataLoaded) ;
Теперь ищу как средствами php сохранить всё это на сервере))
|