Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание картинки canvas (https://javascript.ru/forum/misc/54005-sozdanie-kartinki-canvas.html)

Sinhrofazathron 27.02.2015 13:47

Создание картинки canvas
 
Так как imageData содержит RGBA информацию хотел сделать координацию по Х и У с удобным доступом к цветам. Но функции прописаны не верно, не обращается через функцию к массиву pixselSet.
Если есть другие формулировки обращения к цветам напишите пожалуйста.

var canvas = document.getElementById('picture');
var ctx = canvas.getContext('2d');
const xmax = 1024, ymax = 768;
var pixelSet = ctx.createImageData(xmax,ymax); // Черный квадрат 1024 x 768 полностью прозрачный
 var i, x, y;
  pixelSet.data.prototype.Red = function(x, y, color){ this.data[this.x * this.y * 4 - 3] = this.color;}
  pixelSet.data.prototype.Green = function(x, y, color){ this.data[this.x * this.y * 4 - 2] = this.color;}
  pixelSet.data.prototype.Blue = function(x, y, color){ this.data[this.x * this.y * 4 - 1] = this.color;}
for(y=1;i<ymax;y++)
for(x=1;i<xmax;x++)
{
  pixelSet.data.Red(x, y, 255); // всё красным
}
ctx.putImageData(pixelSet, 20,20); // с такими парам. выводит 1024х768

Либо можно для задания сразу RGB:
pixelSet.data.prototype.Red = function(x, y, R, G, B){ 
this.data[this.x * this.y * 4 - 3] = this.R; //Red
this.data[this.x * this.y * 4 - 2] = this.G; //Geen
this.data[this.x * this.y * 4 - 1] = this.B; //Blue
}

:help: P.S. Если имеется информация или книги про Fractal Flame Algorithm напишите пожалуйста, желательно на русском.

deivan 28.02.2015 15:06

var const xmax = 1024, ymax = 768;


это что за const?...

Safort 28.02.2015 15:23

Sinhrofazathron,
var const xmax = 1024, ymax = 768;

var служит для объявления переменной.
const нужен для объявления константы. Ты пытаешь создать константную переменную? WTF?

Sinhrofazathron 01.03.2015 14:38

В общем то не поэтому не работал, но исправил, хотя и объявляла в этой формулировке const независимо от того что стоял var. Спасибо. А по основной теме создания функций обращения к массиву pixelSet по X и Y есть предложения?

laimas 01.03.2015 15:34

Можно получить информацию о цвете и с помощью метода getImageData(). А вообще-то у canvas не так и много методов, описание их в сети найти не сложно, например вот одно из них.


Часовой пояс GMT +3, время: 10:48.