Вступление
Это классный плагин jQuery, основанный на знаменитом фильме «Матрица». Ну, это довольно просто. Этот плагин имитирует зеленых с эффектами чисел из самого фильма, выбирает изображение, которое превратится в него, и начинает вносить изменения. Вы должны попробовать это, это весело!
Как это работает?
Когда вы загружаете изображение в холст, можно прочитать пиксели, а затем цвета:
data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data
Самое интересное в том, что можно читать прямоугольники изображения, jQuery использует это для вычисления среднего цвета каждой части изображения. Затем этот цвет будет использоваться символом, который заменит пиксели части изображения.
//get a portion of image
data = ctx.getImageData(x, y, settings.grainSize, settings.grainSize).data;
var r_avg = 0, g_avg = 0, b_avg = 0;
//sum all channels values
for (var i = 0; i < data.length; i += 4) {
r_avg += data[i];
g_avg += data[i + 1];
b_avg += data[i + 2];
}
//calculate average color for each channel
r_avg = Math.round(r_avg / (data.length / 4));
g_avg = Math.round(g_avg / (data.length / 4));
b_avg = Math.round(b_avg / (data.length / 4));
Он сгенерирует много B-тегов, каждый из которых имеет символ внутри:
var block = document.createElement("b");
jQuery(matrix_cont).append(block);
var r = image_colors[i].r;
var g = image_colors[i].g;
var b = image_colors[i].b;
block.innerHTML = getChar(r, g, b);
switch (settings.colors) {
case "bn":
var gray = Math.round((r + g + b) / 3);
jQuery(block).css("color", "rgb(" + gray + "," + gray + "," + gray + ")");
break;
case "green":
jQuery(block).css("color", "rgb(0," + g + ",0)");
break;
case "all":
default:
jQuery(block).css("color", "rgb(" + r + "," + g + "," + b + ")");
break;
}
Зная персонажей
Первые символы предназначены для темных цветов, а последние — для светлых.
chars: ['.', '¸', '¹', '`', '*', '_', '°', 'ª', '^', '+', '±', '¢', '®', '"', 'υ',
'»', '½', '¾', 'h', 'e', '8', 's', 'p', '=', '/', '$', '§', 'ξ', 'u', '6', '9',
'5', 'y', 'j', 'd', 'q', 'H', 'ç', 'B', 'V', '8', 'Z', 'W', 'S',
'%', 'e', 'n', 'm', '&', 'à', 'ω', 'Ψ', 'o', '#', 'k', '●', '♦', '♥']
Как пользоваться
Включите эти коды в свой головной тег.
<!--mce:0-->
<!--mce:1-->
И используйте этот, чтобы активировать его.
$(function () { $("img").matrix(); });