|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Передача bitmapData на сервер POST в виде .jpeg
добрый день.
у меня такая задача. Есть приложение вконтакте. В приложении есть кнопка butScreen, при нажатии на которую производится снимок экрана при помощи BitmapData. var bitmapData:BitmapData = new BitmapData(foner.width, foner.height, false); bitmapData.draw(foner); var bm:Bitmap = new Bitmap(bitmapData); Пишу var sendAdress:* = new URLRequest(urla+"&photo="+bm); sendAdress.method = URLRequestMethod.POST; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, completeHandler); loader.load(sendAdress);
Вопрос. как мне вытащить из этой битмапдаты файл .jpeg или .bmp, чтобы была возможность послать его на сервер? Облазил уже все, что можно... Ответьте, пожалуйста, если кто имеет представление об этом? Желательно более-менее подробно. Ну или вообще хоть как-нибудь! |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
|
|||||
ага... класс JPGEncoder.as.. звучит многообещающе...
вот нашел такой пример function saver():void { var createName = 'mypict.jpg'; //--имя картинки при сохранении var outputpath='images/'; //--папка, в которую будут сохранятся картинки var bmd:BitmapData=new BitmapData(foner.width, foner.height, false); //--создаем bitmapdata bmd.draw(foner); //--рисуем в битмапе интересующий мувиклип var byteArray : ByteArray = new JPGEncoder(85).encode(bmd); //--в массив кодированное изображение? 85 - качество. var urlRequest : URLRequest = new URLRequest(); urlRequest.url = 'saver.php?path='+outputpath; //--php скрипт, который будет сохранять urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary(); urlRequest.method = URLRequestMethod.POST; urlRequest.data = UploadPostHelper.getPostData(createName, byteArray); urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) ); var urlLoader : URLLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener( Event.COMPLETE, onImageCreated); //--функция обработчик события создания фотки urlLoader.addEventListener( ProgressEvent.PROGRESS, onImgCreateProgress); //--функция обработчик процесса загрузки фотки urlLoader.load(urlRequest); } 1120: Access of undefined property UploadPostHelper. ... |
|
|||||
это не он ругается, а на него..потому как его нет...
для вашего запроса просто в него притулите ваш byteArray картинки и отправьте. если не ошибаюсь - параметр photo у вконтакта есть готовый пример на загрузку фотки
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
ZergMaster, вы загрузили фотку?
Я помоему както криво получают байтовый массив: var bitmap:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bitmap.fillRect(rect, 0xFF0000); var urlRequest:URLRequest = new URLRequest(); urlRequest.url = DataKeeper.uploadUrl + "&photo=" +bit2arr(bitmap, "ddd.jpg"); urlRequest.method = URLRequestMethod.POST; var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, completeUpload); loader.load(urlRequest); private function bit2arr( bitmap:BitmapData, filename:String):ByteArray { var pix:ByteArray = bitmap.getPixels(bitmap.rect); pix.writeShort(bitmap.width); pix.writeShort(bitmap.height); pix.writeShort(bitmap.transparent ? 1 : 0); pix.writeUTFBytes(filename.toLowerCase()); pix.writeBytes(pix, 0, pix.bytesAvailable); pix.compress(); return pix; } |
|
|||||
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
|
|
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Тогда все нормально аплоадится. Видимо, туплю в чем-то, или чего-то не понимаю, или, действительно — это единственный приемлимый способ. Все примеры, которые видел, или с multipart, или с FileReference. |
|
|||||
ну а чем FileReference не угодил то? )
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Если с локального диска грузить, то да. А если нужно модифицировать предварительно, или с нуля создать изображение, то FileReference тут уже не помощник.
|
Часовой пояс GMT +4, время: 23:49. |
|
« Предыдущая тема | Следующая тема » |
|
|