Transformar imagem colorida em preto e branco com Actioscript + Caurina


imagempb.jpg

Vou postar aqui um código que utiliza as actions da classe caurina, criada por Zeh Fernando (http://labs.zeh.com.br/).
Crie um arquivo novo, coloque sua imagem no palco, transforme-a em MovieClip e instancie-a como “imagem“.
Nos arquivos de exemplo (donwload abaixo), existe uma pasta chamada caurina, com os .as necessários para o efeito funcionar.

Cole o actionscript abaixo no frame:

//importando as classes
import flash.filters.ColorMatrixFilter;
import caurina.transitions.Tweener;
_saturation_get = function(p_obj:Object):Number {
for (var i in p_obj.filters) {
if (p_obj.filters[i] instanceof ColorMatrixFilter) {
// Já tem filtro
return ((1-(p_obj.filters[i].matrix[1] / (1/3))) * 100);
}
}
return 100; // sem filtro
};
_saturation_set = function(p_obj:Object, p_value:Number):Void {
var mtx:Array = new Array();
var m:Number = (1/3) + (p_value / 100) * 2/3;
var o:Number = (1/3) * (1-(p_value / 100));
if (o < 0) o = 0;
mtx = mtx.concat([m, o, o, 0, 0]);
mtx = mtx.concat([o, m, o, 0, 0]);
mtx = mtx.concat([o, o, m, 0, 0]);
mtx = mtx.concat([0, 0, 0, 1, 0]);
p_obj.filters = [new ColorMatrixFilter(mtx)];
};
Tweener.registerSpecialProperty(“_saturation”, _saturation_get, _saturation_set);
Tweener.addTween(_root.imagem, {_saturation:0, time:1,
transition:”linear”});

Pronto. É só testar.
Para baixar os arquivos, clique aqui.

Referências:
http://labs.zeh.com.br/blog/?p=93
http://www.ralcr.com/caurina/

, , , , ,

  1. #1 por Felipe em Maio 29th, 2008

    Legal cara! estava pesquisando mesmo uma maneira de fazer em AS2.

    Mas tem um porém: teu codigo nao funciona pra trazer o MC de volta a cores.

    Será que é algo simples de consertar?

    Se souber me manda um email ? obrigado!

  2. #2 por Leno em Julho 16th, 2008

    Olha eu estou com a mesma dúvida do Felipe, caso possa me ajudar manda um e-mail.

    Obrigado. :D

(não será publicado)
  1. Nenhum trackback.