PDA

Просмотр полной версии : Программное обесцвечивание картинки


sxstudio
11.10.2005, 21:21
Ребят, появилась обьективная потребнось в программаном обесцвечивании картинки.. Суть в том что я, как обычно, подгружаю что-то - на этот рах это картинка.... фотография! Так вот эта картика цветная - а я хочу чтоб она подгрузилась и стала черно-белой.. или даже как-будто накрыта серым полупрозрачным квадратом! Ну это че то с RGB мутить надо, я не совсем рублю в смешивании... Подскажите пожалуста как это сделать!

iNils
11.10.2005, 21:41
Либо 8-плеер, либо две картинки: черно-белая и цветная.

sxstudio
11.10.2005, 21:48
А как через 8 плеер???

iNils
11.10.2005, 22:17
import flash.filters.ColorMatrixFilter;
desaturation = 0;
function getDesaturationFilter (t) {
t = t ? t : 1;
var r = 0.212671;
var g = 0.715160;
var b = 0.072169;
return new ColorMatrixFilter ([t * r + 1 - t, t * g, t * b, 0, 0, t * r, t * g + 1 - t, t * b, 0, 0, t * r, t * g, t * b + 1 - t, 0, 0, 0, 0, 0, 1, 0]);
}
_root.createEmptyMovieClip ("mc", 2);
mc.beginGradientFill ("linear", [0xFF0000, 0x00FF00, 0x0000FF], [100, 100, 100], [0, 128, 255], {a:200, b:0, c:0, d:0, e:200, f:0, g:200, h:200, i:1});
mc.moveTo (100, 100);
mc.lineTo (100, 300);
mc.lineTo (300, 300);
mc.lineTo (300, 100);
mc.lineTo (100, 100);
mc.endFill ();
mc.onEnterFrame = function () {
if (desaturation <= 0) {
des = 0.05;
} else if (desaturation >= 1) {
des = -0.05;
}
desaturation += des;
this.filters = new Array (getDesaturationFilter (desaturation));
};

sxstudio
11.10.2005, 22:26
Ну ты зверь.... Молоток.... спасибо....!! Щас гляну как все это замастырить получше!"

iNils
11.10.2005, 23:18
Это не я, это help и samples

kruasan
11.10.2005, 23:59
.. или даже как-будто накрыта серым полупрозрачным квадратом! ... Подскажите пожалуста как это сделать!

А почему бы не накрыть ее серым полупрозрачным квадратом

iNils
12.10.2005, 00:53
Не вижу связи меду ч/б и серым полупрозрачным квадратом. Совершенно разные эффекты.