[Resolvido] Filtro para webcam.
Bom dia amigos,
faz muito tempo que não posto nada na área de Flash. Porém hoje preciso de ajuda.
Alguém poderia me ajudar com o código abaixo? Gostaria de implementar o arquivamente da imagem capturada pela webcam.
import flash.display.BitmapData;
import flash.filters.DropShadowFilter
import flash.filters.BlurFilter;
import flash.geom.Matrix;
import flash.filters.ColorMatrixFilter;
var output_vid:Video;
var my_cam:Camera = Camera.get();
output_vid.attachVideo(my_cam);
var matrix:Array = new Array();matrix = matrix.concat([1, 0, 0, 0, 0]); // Vermelho
matrix = matrix.concat([0, 1, 0, 1, 0]); // Verde
matrix = matrix.concat([0, 0, 1, 0, 0]); // Azul
matrix = matrix.concat([0, 0, 0, 1, 0]); // Alpha de Cor
var filterCol:ColorMatrixFilter = new ColorMatrixFilter(matrix);
var shadowFilter:DropShadowFilter = new DropShadowFilter(5, 45, 0x000000, 100, 20, 20, 2, 2, false, false, false)
var blur:BlurFilter = new BlurFilter(0, 0, 0);
myFilters = new Array(shadowFilter, blur, filterCol)
colF.onPress = mx.utils.Delegate.create(this,makeColor);
shaF.onPress = mx.utils.Delegate.create(this,makeShadow);
bluF.onPress = mx.utils.Delegate.create(this,makeBlur);
function makeShadow() { capture(1) }
function makeBlur(){ capture(1) }
function makeColor(){ capture(2) }
function capture(nr){
this["snapshot"+nr] = new BitmapData(output_vid._width,output_vid._height);
this["snapshot"+nr].draw(output_vid,new Matrix());
var t:MovieClip = createEmptyMovieClip("bitmap_mc"+nr,nr);
t._x = 20;
t._y = 350+(nr*130);
t.attachBitmap(this["snapshot"+nr],1);
var filterArray = new Array(myFilters[nr])
t.filters = filterArray
attachMovie("print_but", "bot"+nr, 100+nr, {_x:t._x+t._width-70, _y:t._y+t._height/2})
}
function output(nr){
var pixels:Array = new Array()
var snap = new BitmapData(this["snapshot"+nr].width, this["snapshot"+nr].height);
myMatrix = new Matrix();
snap.draw(this["snapshot"+nr], myMatrix);
var w:Number = snap.width, tmp
var h:Number = snap.height
for(var a=0; a<=w; a++){
for(var b=0; b<=h; b++){
tmp = snap.getPixel32(a, b).toString(16)
pixels.push(tmp.substr(1))
}
}
var output:LoadVars = new LoadVars()
output.img = pixels.toString()
output.height = h
output.width = w
output.send("show.php", "output", "POST")
output.send("saveSnapshot.php", "output", "POST")
}stop()
Código completo em: http://www.leonardonobre.com.br/flashcam.zip
Se alguém puder me ajudar.
Abraços,
Léo
Discussão (10)
Carregando comentários...