Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

interlokk

Como pegar os dados da imagem

Recommended Posts

Pessoal é o seguinte. TEnho um arquivo em flash que pega a imagem da webcam e congela na tela. O actionscript do flash lança os dados da imagem para um arquivo asp que deveria salvá-lo. O problema é que não consigo passar a variavel da imagem para o codigo asp pois o acs3 não informa o nome da varivel da imagem (sou leigo no assunto). Até onde eu sei os dados são passados por uma array binaria, mas qual o seu nome? Em asp as variaveis enviadas via post são pegas por uma request.form('campo_do_form"), mas como eu faço aqui? O código as3 está abaixo:

 

import flash.display.Bitmap;
import flash.display.BitmapData;
import com.adobe.images.JPGEncoder;

var snd:Sound = new camerasound(); //new sound instance for the "capture" button click

var bandwidth:int = 0; // Maximum amount of bandwidth that the current outgoing video feed can use, in bytes per second.
var quality:int = 100; // This value is 0-100 with 1 being the lowest quality. 

var cam:Camera = Camera.getCamera();
cam.setQuality(bandwidth, quality);
cam.setMode(320,240,30,false); // setMode(videoWidth, videoHeight, video fps, favor area)
var video:Video = new Video();
video.attachCamera(cam);
video.x = 20;
video.y = 20;
addChild(video);

var bitmapData:BitmapData = new BitmapData(video.width,video.height);

var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.x = 360;
bitmap.y = 20;
addChild(bitmap);

capture_mc.buttonMode = true;
capture_mc.addEventListener(MouseEvent.CLICK,captureImage);

function captureImage(e:MouseEvent):void {
	snd.play();
	bitmapData.draw(video);
	save_mc.buttonMode = true;
	save_mc.addEventListener(MouseEvent.CLICK, onSaveJPG);
	save_mc.alpha = 1;
}

save_mc.alpha = .5;


function onSaveJPG(e:Event):void{
	var myEncoder:JPGEncoder = new JPGEncoder(100);
	var byteArray:ByteArray = myEncoder.encode(bitmapData);
	
	var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
	
	var saveJPG:URLRequest = new URLRequest("save.asp");
	saveJPG.requestHeaders.push(header);
	saveJPG.method = URLRequestMethod.POST;
	saveJPG.data = byteArray;
	
	var urlLoader:URLLoader = new URLLoader();
	urlLoader.addEventListener(Event.COMPLETE, sendComplete);
	urlLoader.load(saveJPG);
	
	function sendComplete(event:Event):void{
		warn.visible = true;
		addChild(warn);
		warn.addEventListener(MouseEvent.MOUSE_DOWN, warnDown);
		warn.buttonMode = true;
	}

}

function warnDown(e:MouseEvent):void{
	navigateToURL(new URLRequest("images/"), "_blank");
	warn.visible = false;
}

warn.visible = false;

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça as seguintes alterações

 

var postVars:URLVariables = new URLVariables();
				
postVars.flashImagem = byteArray;
			
saveJPG.data = postVars;

e no asp:

(exemplo em php)

 

$img = $_post["flashImagem];

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Irineu, grato pela resposta. Eu usei esta solução aqui e funcionou bem. Com essas modificações o arquivo e o seu nome que é passado pela seguinte linha:

urlRequest.data = UploadPostHelper.getPostData( 'image.jpg', byteArray,"file", postVariables);
Assim, basta pegar as variaveis numa função de upload normal usando o FSO.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.