Показать сообщение отдельно
  #1 (permalink)  
Старый 01.05.2014, 18:27
Новичок на форуме
Отправить личное сообщение для Lizzzy Посмотреть профиль Найти все сообщения от Lizzzy
 
Регистрация: 27.04.2014
Сообщений: 6

Инвертировать цветовые каналы в изображении
Подскажите новичку! Пожалуйста! Нужно инвертировать цветовые каналы в изображении. Не могу понять, что не так написала в скрипте?

<!doctype html>
<html>
<meta charset='utf-8'>
<head>
<title></title>
</head>
<body>
<canvas id='image' width="500" height="375" style="border:1px solid"></canvas>
<script language="JavaScript" type="text/javascript">
var img = document.getElementById('image'),
context = img.getContext('2d'),
pic = new Image();
pic.src = 'img/penguins.png';
pic.onload = function()
{
context.drawImage(pic, 0, 0);
}
var pic = context.getImageData(0, 0, pic.width, pic.height);
var pix = pic.data; // Обойти все пиксели изображения и инвертировать цвет.
for (var i = 0, n = pix.length; i < n; i += 4)
{
pix[i] = 255; // красный канал
pix[i+1] = 255 - pix[i+1]; // зеленый канал
pix[i+2] = 255 - pix[i+2]; // синий канал
}
// Отрисовать объект ImageData в заданных координатах (x,y).
context.putImageData(pic, 0, 0);
</script>
</body>
</html>
Ответить с цитированием