Тема: canvas hue-rotate
Показать сообщение отдельно
  #7 (permalink)  
Старый 11.08.2016, 00:56
Новичок на форуме
Отправить личное сообщение для fireballpro100 Посмотреть профиль Найти все сообщения от fireballpro100
 
Регистрация: 20.12.2014
Сообщений: 9

Сообщение от warren buffet Посмотреть сообщение
Скорректирую. На самом деле палитра индексных файлов крутится, поскольку индексы сами крутить бессмысленно. Если в ФШ открыть гифку и вызвать Hue/Saturation, апликуха начнет крутить RGB в палитре, других цветов у нее все равно нету. Но крутится-то как, на генеральном HUE, а не специфически для индекса. Если добраться до этой палитры, то есть распарсить gif, ты можешь наделать из одно сотню немыслимых вариантов просто заменяя 256 RGB цветов на другие.

Зацени, я нашел этот old school метод http://www.effectgames.com/effect/ar...ith_HTML5.html на канвасе. Там есть демки и сырец. Разбирайся.
warren buffet, я написал, что у меня тяжелые текстуры и видимо, вы сделали вывод, что я использую gif-ки. На самом деле у меня png, есть необходимость использовать этот формат, по-скольку, картинка не прямоугольной формы, а белый фон - непростителен) В любом случае, спасибо за ваши труды)

Нашёл на гитхабе js скрипт, который меня устраивает, поставил: вроде работает, как надо. Даже на моем древнем-древнем дефолтном браузере на "ведроиде" всё работает как надо)

Единственная сложность заключалась в том, что в опере с дом. комп-а скрипт не работал почему-то, но когда я залил в инет - всё работало.

Скрипт взял отсюда: https://github.com/arahaya/ImageFilters.js

Залью свой пример, мало ли, вдруг кому-то пригодится:

Код:
<html>
	<head>
		<script type="text/javascript" src="imagefilters.js"></script>
		<script type="text/javascript">
		  
		  //Инициализация канвас
			var canvas,ctx,w,h;
			var img;
			function init(){
				canvas = document.getElementById("canvas");
				canvas.width = 572;
				canvas.height = 600;
				w = canvas.width;
				h = canvas.height;
				ctx = canvas.getContext('2d');
				ctx.strokeRect(0,0,w,h);
				
				

				//Отрисовка фонового изображения
				img = document.getElementById("image");
				ctx.drawImage(img,0,0);
				
				// create an ImageData for the area you want to apply the filter.
				  var imageData = ctx.getImageData(0, 0, 572, 600);

				  // pass it to a filter and get the modified copy
				  var filtered = ImageFilters.HSLAdjustment(imageData, 280, 0, 0);

				  // put it back into a context to view the results
				  ctx.putImageData(filtered, 0, 0);
			}
		</script>
	</head>
	<body onload="init();">
		<img src="1.jpg" id="image" />
		<canvas id="canvas"></canvas>
	</body>
</html>
Благодарю за "пинки"))
Ответить с цитированием