Загрузка фото в альбом
Загрузка фото в альбом
Как Bitmap закодировать в ByteArray ?
Re: Загрузка фото в альбом
разобрался?
Re: Загрузка фото в альбом
Код: Выделить всё
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);
Re: Загрузка фото в альбом
Спасибо! Я так и делал, оказалось, что проблема во Flash Player в Google Chrome, он что то глючит, в другом браузере оказывается работает. Вот только при отправке в альбом выдает ошибку Invalid hash.
Вот код.
Где console:TextField. В ней выводится
Через FileReference на компьютер нормально сохраняет, а в альбом не загружает.
Если здесь поможете буду очень признателен
Вот код.
Код: Выделить всё
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
Через FileReference на компьютер нормально сохраняет, а в альбом не загружает.
Если здесь поможете буду очень признателен
Re: Загрузка фото в альбом
неужели никто не сталкивался?
Re: Загрузка фото в альбом
Может кто-то просто скинет исходник по сохранению скриншотов в альбом?
Re: Загрузка фото в альбом
Урок бы кто-нибудь сделал) Я бы был доволен)
Один хороший человек обещал сделать, http://flapps.ru/forum/topic260-10.html#p10121 но так и не сделал(
Один хороший человек обещал сделать, http://flapps.ru/forum/topic260-10.html#p10121 но так и не сделал(