Загрузка фото в альбом
Добавлено: 15 июн 2010, 17:26
Как Bitmap закодировать в ByteArray ?
Код: Выделить всё
var bitmap_data:BitmapData = new BitmapData(canvas_mc.width,canvas_mc.height); bitmap_data.draw(canvas_mc); var byte_arr:ByteArray = PNGEncoder.encode(bitmap_data);
Код: Выделить всё
var byte_arr:ByteArray = JPGEncoder.encode(bitmap_data);
Код: Выделить всё
private function onScreenButClicked(e:MouseEvent):void { var _fileData:ByteArray; var _fileContentType:String = 'image/jpeg'; var codeEx:String = ''; var myAID:int = 0; if (myAID == 0) { codeEx += 'var a=API.photos.createAlbum({"title":"1","comment_privacy":3,"description":"","privacy":3}).aid;'; } else { codeEx += 'var a=' + myAID.toString() + ';'; } codeEx += 'return API.photos.getUploadServer({"aid":a,"save_big":1});'; apiVK.api('execute', { code:codeEx}, function(data: Object):void { _upload_url = data['upload_url'].toString(); var bmd:BitmapData=new BitmapData(stage.width, stage.height, false); //--создаем bitmapdata bmd.draw(stage); var jpg:PNGEncoder = new PNGEncoder(); _fileData = jpg.encode(bmd); var mll:MultipartURLLoader = new MultipartURLLoader(); mll.addEventListener(Event.COMPLETE, function(event:Event):void { event.currentTarget.removeEventListener(event.type, arguments.callee); savePhotos(parseServerAck(event.currentTarget.loader.data as String)); }); mll.addFile(_fileData, "file.png", "file1"); mll.load(_upload_url); }, onApiRequestFail); } private function parseServerAck(serverAck:String):* { var result:* = new Object; for each(var pair:String in serverAck.split(/\s*[{},]\s*/)) { var tmp:Array = pair.split(/\s*[:"]\s*/);//Чтоб все красным не было" if ( (tmp[1] == "server") || (tmp[1] == "photos_list") || (tmp[1] == "aid") || (tmp[1] == "hash")) { result[tmp[1]] = tmp[4]; } } return result; } private function savePhotos(serverAck:*):void { var variables:URLVariables = new URLVariables; for(var key:String in serverAck) { variables[key] = serverAck[key]; } savePhotosVk(variables.aid, variables.server, variables.photos_list, variables.hash); } private function savePhotosVk(this_aid:Number, this_server:String, this_photos_list:String, this_hash:String):void { console.appendText( this_aid.toString() + ' ,server: ' + this_server + ' ,phlst: ' + this_photos_list + ' ,hash: ' + this_hash + '\n'); apiVK.api('savePhotos',{ aid:this_aid, server:this_server, photos_list:this_photos_list, hash:this_hash},function(data:Object):void{ console.appendText(data.toString() + '\n'); }, onApiRequestFail); } private function onApiRequestFail(data: Object): void { console.appendText("Error: "+data.error_msg+"\n"); trace(data); }
_fileContentType делал 'image/jpeg' и 'image/png' и без него и использовал и PNGEncoder и JPEGEncoder. Экспериментировал в общем125771204 ,server: 11160 ,phlst: 45c7fbfcb2 ,hash: e340b66f968c4742d34b4ca41cf
Error: Invalid hash