Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.04.2009, 12:26
mr.tsb вне форума Посмотреть профиль Отправить личное сообщение для mr.tsb Найти все сообщения от mr.tsb
  № 1  
Ответить с цитированием
mr.tsb

Регистрация: Mar 2008
Сообщений: 15
По умолчанию Как сохранить Bitmap на сервере через JPGEncoder

Делаю скриншонт с камеры и хочу сохранить его на сервер в формате jpg.
Делаю так:

Код AS3:
Urequest = new URLRequest("http://www.mysite.ru/upload.php");
 
var imgcontainer:BitmapData = new BitmapData(320,240);	
var image:Bitmap = new Bitmap(imgcontainer);
var scaleMatrix:Matrix = new Matrix()
 
scaleMatrix.scale(2,2)
imgcontainer.draw(MyCamScreenshot,scaleMatrix);
var jpg:JPGEncoder = new JPGEncoder(100);
var ba:ByteArray = jpg.encode(image);
 
var file:FileReference = FileReference(ba);
file.upload(uploadURL);
компилятор ругается:

Цитата:
1067: Implicit coercion of a value of type flash.display:Bitmap to an unrelated type flash.display:BitmapData.
или, если я передаю image в FileReference:
Цитата:
Type Coercion failed: cannot convert flash.display::Bitmap@1eebc9d1 to flash.net.FileReference.
Пожалуйста, подскажите, что я делаю нетак?

Старый 25.04.2009, 12:43
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 2  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Вы не пытаетесь понять сообщения об ошибках или хотя-бы почитать документацию.

Старый 25.04.2009, 17:38
mr.tsb вне форума Посмотреть профиль Отправить личное сообщение для mr.tsb Найти все сообщения от mr.tsb
  № 3  
Ответить с цитированием
mr.tsb

Регистрация: Mar 2008
Сообщений: 15
Прошу прощения за нарушение вашего эстетического вкуса, просто очень спешу :-(

Переиначу вопрос:

Как тип Bitmap изменить в тип BitmapData требуемый JPGEncoder'ом ?
И съест ли FileReference этот тип?

Старый 26.04.2009, 04:51
VVall вне форума Посмотреть профиль Отправить личное сообщение для VVall Найти все сообщения от VVall
  № 4  
Ответить с цитированием
VVall

Регистрация: Feb 2009
Сообщений: 1,195
Ответ переиначивать не требуется: читайте документацию, там всё написано. Как вы хотите сделать что-то, не изучив это? Почему вы считаете, что ваша спешка является оправданием, чтобы другие люди тратили своё время на пересказ вам элементарных вещей из документации?

Для начала http://livedocs.adobe.com/flex/3/lan...ay/Bitmap.html

Старый 27.04.2009, 21:09
mr.tsb вне форума Посмотреть профиль Отправить личное сообщение для mr.tsb Найти все сообщения от mr.tsb
  № 5  
Ответить с цитированием
mr.tsb

Регистрация: Mar 2008
Сообщений: 15
Спасибо, хорошо, я чуть разобрался с тем, что наворотил.

Код AS3:
MyCamScreenshot.attachCamera(cam);   // компонент video
	...
	var url = "http://www.mysite.ru/upload.php";
	var scaleMatrix:Matrix = new Matrix();
	scaleMatrix.scale(2,2);
 
	/////////
	var myBitmapData:BitmapData = new BitmapData(320,240);
	myBitmapData.draw(MyCamScreenshot,scaleMatrix);
	var bmp:Bitmap = new Bitmap(myBitmapData);
	addChild(bmp);
	/////////
 
	var jpg:JPGEncoder = new JPGEncoder(100);
	var ba:ByteArray = jpg.encode(myBitmapData);

как теперь "ba" залить на сервер?
P.S. у меня FP9...

Добавлено через 27 минут
Пытаюсь отправить через следующую конструкцию:
Код AS3:
 
	var request:URLRequest = new URLRequest(url);
 
	var variables:URLVariables = new URLVariables();
          variables.ddd = ba.toString();
 
	request.data = variables;
	request.method = URLRequestMethod.POST;
	var loader:URLLoader = new URLLoader();
	loader.addEventListener(Event.COMPLETE, qwer);
	loader.load(request);
Всё в порядке, запрос приходит на сервер, но в jpg файл сваливаются только пару байт...


Последний раз редактировалось mr.tsb; 28.04.2009 в 11:08.
Старый 29.04.2009, 12:42
Zall вне форума Посмотреть профиль Отправить личное сообщение для Zall Найти все сообщения от Zall
  № 6  
Ответить с цитированием
Zall

Регистрация: Nov 2004
Адрес: Москва
Сообщений: 21
variables.ddd = ba.toString(); - попробуй без этого.

Добавлено через 38 секунд
variables.ddd = ba или типо того
__________________
Нехрен тут нахрен

Старый 29.04.2009, 13:00
mr.tsb вне форума Посмотреть профиль Отправить личное сообщение для mr.tsb Найти все сообщения от mr.tsb
  № 7  
Ответить с цитированием
mr.tsb

Регистрация: Mar 2008
Сообщений: 15
Всем спасибо!
нашел работающий способ здесь:
http://easyflash.org/256-soxranyaem-...sredstvom.html

Старый 20.04.2010, 14:21
Da_Demon вне форума Посмотреть профиль Отправить личное сообщение для Da_Demon Найти все сообщения от Da_Demon
  № 8  
Ответить с цитированием
Da_Demon

Регистрация: Apr 2007
Сообщений: 34
У этого примера есть проблема - JPG он делает уже на сервере.
Думаю тема не раскрыта JPGEncoder нужен для того что-бы слать уже готовый маленький файл, а не здоровенную
Код AS1/AS2:
myBitmapData.getPixel(a,b).toString(16);
и так для каждого пикселя.
Демонстрацию отправки и сохранения результата JPGEncoder все еще найти не могу.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.