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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.12.2009, 13:34
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 1  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Question Снимок с камеры, проблема с размером

Привет, ребята.
Я делаю снимок с камеры, делаю из него JPG в byteArray и POST'ом шлю на сервер. Камере ставлю 600 х 300 (или любой другой), битмапу делаю 600 х 300, видео у меня тоже 600 х 300, но JPG приходит сам 600 х 300, а вот содержимое его 320 х 240, примерно так:

Как мне "отрисовать камеру" размером 600 х 300?

Вот кусочки кода:
Код AS3:
		_video = new Video();
		_video.width = 600;
		_video.height = 300;
		addChild(_video);
 
		_cam = Camera.getCamera();
		_cam.setQuality(0, 100);
		_cam.setMode(600, 300, 24, true);
		_video.attachCamera(_cam);
Код AS3:
	private function onSnapClicked(event:MouseEvent):void {
		var encoder:JPEGEncoder = new JPEGEncoder(90);
 
		var bmd:BitmapData = new BitmapData(_video.width, _video.height, false, 0xff0000);
		bmd.draw(_video);
 
		_ba = encoder.encode(bmd);
		_video.attachCamera(null);
	}
Код AS3:
	private function onSendClicked(event:MouseEvent):void {
		var urlRequest:URLRequest = new URLRequest();
		urlRequest.url = FlashVars.getStringByName("php");
		urlRequest.contentType = "application/octet-stream";
		urlRequest.method = URLRequestMethod.POST;
		urlRequest.data = _ba;
 
		var urlLoader:URLLoader = new URLLoader();
		urlLoader.addEventListener(Event.COMPLETE, onSent);
		urlLoader.load(urlRequest);
	}
Спасибо.


Последний раз редактировалось enepx; 04.12.2009 в 13:48.
Старый 04.12.2009, 13:58
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Код AS3:
setMode(width:int, height:int, fps:Number, favorArea:Boolean = true):void
Задает для камеры собственный режим записи, наилучшим образом удовлетворяющий заданным требованиям.

width и height только для чтения

UPD:
извиняюсь, у вас так и сделано

а может быть из-за того что сама камера не снимает с бОльшим разрешением?
__________________
low +


Последний раз редактировалось Jewelz; 04.12.2009 в 14:01.
Старый 04.12.2009, 14:03
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 3  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Камера у меня 1.3Mpx

я ставлю, например, 800 х 600, у меня получается битмапдата 800 х 600, но слева вверху у меня все равно 320 х 240 сником камеры. Может мне надо тут
Код AS3:
		var bmd:BitmapData = new BitmapData(W, H, false, 0xff0000);
		bmd.draw(_video);
использовать матрицу трансформации?

Добавлено через 6 минут
Используя матрицу, я могу получить любой размер, через метода scale, но тогда мне нужно знать исходный размер, у меня он 320 x 240. Или он у всех одинаковый?


Последний раз редактировалось enepx; 04.12.2009 в 14:10.
Старый 04.12.2009, 14:13
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 4  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
Цитата:
Сообщение от enepx Посмотреть сообщение
я ставлю, например, 800 х 600, у меня получается битмапдата 800 х 600, но слева вверху у меня все равно 320 х 240 сником камеры. Может мне надо тут
Код AS3:
		var bmd:BitmapData = new BitmapData(W, H, false, 0xff0000);
		bmd.draw(_video);
использовать матрицу трансформации?
нет, Bitmap у вас получается с верными размерами, просто отрисовывает туда видео с размером 320x240 поэтому и красные поля которые вы задали в fillColor

можно тогда в методе draw указать матрицу трансформации с параметрами scale например 2

Код AS3:
var m:Matrix = new Matrix();
var size:Number = 2;
m.scale(size, size);
 
var bmd:BitmapData = new BitmapData(W, H, false, 0xff0000);
bmpd.draw(_video, m, null, null, null, true);
__________________
low +

Старый 04.12.2009, 14:17
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 5  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Jewelz,
я это и имел в виду. Но мне коэффициент 2 надо же тоже узнать. Он зависит от размера камеры, который у меня 320 х 240. Если у всех 320 х 240, то проблема решена, если нет, как узнать?

Старый 04.12.2009, 14:18
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 6  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
а если размер поставить меньше чем 320x240, уменьшается изображение?
__________________
low +

Старый 04.12.2009, 14:23
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 7  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Вроде разобрался, setMode у меня не может поставить больше 640 х 480, т.к. у меня камера 1.3Мпх. А текущую ширину и высоту я беру из Camera.width, Camera.height (они бывают не равны ширине и высоте из setMode). отсюда я и вычислю коэффициент масштабирования.
Спасибо.

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

Теги
POST , камера
Опции темы
Опции просмотра

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

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


 


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


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