Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.05.2013, 22:50
Новичок на форуме
Отправить личное сообщение для gismthedwarf Посмотреть профиль Найти все сообщения от gismthedwarf
 
Регистрация: 05.05.2013
Сообщений: 4

Работа с изображениями
Доброго всем дня, есть такой вопрос.
Есть html-страница, там есть картинка.
Нужно получить всю возможную информацию о каждом пикселе изображения - узнать его цвет(в любом формате любой цветовой схемы), яркость, прозрачность, координаты etc.
В идеале - перебрать всю картинку циклом по пикселю(с возможностью указать шаг - т.е. каждый пиксель, каждый десятый пиксель или каждый сотый и т.п.) и сложить все это в структуру данных, удобную для обработки.
Я встречал подобное в сети, но там это реализовывалось на сервер-сайде, такое возможно сделать на клиенте?
Я в этих ваших программированиях не специалист, поэтому буду благодарен за развернутый ответ, либо за указания, в каком направлении гуглить.
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 05.05.2013, 23:31
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

gismthedwarf,
Загрузить в canvas, ежели изо с того же домена , что и сайт - имеем доступ к кажому пикселю картинки
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2013, 01:30
Новичок на форуме
Отправить личное сообщение для gismthedwarf Посмотреть профиль Найти все сообщения от gismthedwarf
 
Регистрация: 05.05.2013
Сообщений: 4

Deff,
В идеале логика такая:
Есть страница, там кнопка "загрузить файл". Пользователь загружает картинку, она попадает на сервер. Сразу же после этого, картинка выводится в специально отведенный блок на страницу. Теперь из этой картинки, что уже есть на странице, любыми средствами клиента(js) нужно это картинку анализировать: брать каждый пиксель и получать о нём всю возможную информацию.
Подскажите названия функций js или какие-либо библиотеки, которые умеют получать в качестве входных данных этот самый пиксель и возвращать цвет, яркость и т.д. этого пикселя. Или тэги, по которым гуглить. Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2013, 03:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Вот вам пример:
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
    <meta charset="UTF-8">
    <style type="text/css">
    *{padding:0;margin:0;}
    html,body{
        width: 100%;
        height: 100%;
        background: rgb(157,213,58);
    }
	canvas{
		cursor: crosshair;
		position: relative;
	}
	#fixed{
		position: fixed;
		right: 0;
		top: 0;
		background: rgba(222,222,244,.6);
		border: 5px solid #000;
		z-index:2;
	}
    </style>
</head>
<body>
 
<script type="text/javascript">
function id(i){return document.getElementById(i)}
function read(file) {
    var d = document,
        canvas = d.createElement('canvas'),
        ctx = canvas.getContext('2d'),
		img = new Image(),
		out = id('output');
		
    img.onload = function() {
		canvas.width = img.width;
		canvas.height = img.height;
        
		ctx.drawImage(img, 0, 0); 

		var data = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
		
		canvas.onmousemove = function(e){
			var i = (e.layerX + e.layerY * canvas.width) * 4;
			
			out.innerHTML = 'x: ' + e.layerX +
			'<br/>y: ' + e.layerY +
			'<br/>r: ' + data[i] +
			'<br/>g: ' + data[i+1] +
			'<br/>b: ' + data[i+2] +
			'<br/>a: ' + data[i+3];
			out.parentNode.style.borderColor = 'rgba(' + data[i] + ',' + data[i+1] + ',' + data[i+2] + ',' + data[i+3] + ')';
		};
		
		d.body.appendChild(canvas);
    }
    img.src = URL.createObjectURL( file );
    
}
</script>
<div id="fixed" >
	<input type="file" id="input" onchange="read(files[0])"/>
	<div id="output"/></div>
</div>
</body>
</html>

Здесь всё что касается js. Работу с цветами и с сервером - гуглите сами.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Front-end разработчик, работа удаленная или в офисе(Нижний Новгород), фуллтайм. VadimZharko Работа 8 29.04.2013 09:03
работа менеджером georgi Работа 1 29.03.2013 14:18
Javascript фронтенд разработчик(долгосрочная, удаленная работа) cpp Работа 11 16.09.2012 12:04
Программист JavaScript постоянная удалённая работа. moisha Работа 4 26.10.2011 19:52
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06