mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-13 11:50:02 +01:00
Dynamic fix as fun (#207)
getNeighborPixel(x, y) method for Dynamic module
This commit is contained in:
committed by
Jeffrey Warren
parent
0ceb36ffde
commit
fba80bb151
@@ -35,6 +35,10 @@ module.exports = function Dynamic(options,UI) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function changePixel(r, g, b, a) {
|
function changePixel(r, g, b, a) {
|
||||||
|
|
||||||
|
/* neighbourpixels can be calculated by
|
||||||
|
this.getNeighbourPixel.fun(x,y) or this.getNeighborPixel.fun(x,y)
|
||||||
|
*/
|
||||||
var combined = (r + g + b) / 3.000;
|
var combined = (r + g + b) / 3.000;
|
||||||
return [
|
return [
|
||||||
options.red_function(r, g, b, a),
|
options.red_function(r, g, b, a),
|
||||||
@@ -44,6 +48,17 @@ module.exports = function Dynamic(options,UI) {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Functions to get the neighbouring pixel by position (x,y) */
|
||||||
|
function getNeighbourPixel(pixels,curX,curY,distX,distY){
|
||||||
|
return [
|
||||||
|
pixels.get(curX+distX,curY+distY,0)
|
||||||
|
,pixels.get(curX+distX,curY+distY,1)
|
||||||
|
,pixels.get(curX+distX,curY+distY,2)
|
||||||
|
,pixels.get(curX+distX,curY+distY,3)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function output(image,datauri,mimetype){
|
function output(image,datauri,mimetype){
|
||||||
|
|
||||||
// This output is accessible by Image Sequencer
|
// This output is accessible by Image Sequencer
|
||||||
@@ -59,6 +74,8 @@ module.exports = function Dynamic(options,UI) {
|
|||||||
return require('../_nomodule/PixelManipulation.js')(input, {
|
return require('../_nomodule/PixelManipulation.js')(input, {
|
||||||
output: output,
|
output: output,
|
||||||
changePixel: changePixel,
|
changePixel: changePixel,
|
||||||
|
getNeighbourPixel: getNeighbourPixel,
|
||||||
|
getNeighborPixel: getNeighbourPixel,
|
||||||
format: input.format,
|
format: input.format,
|
||||||
image: options.image,
|
image: options.image,
|
||||||
inBrowser: options.inBrowser,
|
inBrowser: options.inBrowser,
|
||||||
|
|||||||
@@ -22,6 +22,12 @@ module.exports = function PixelManipulation(image, options) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(options.getNeighbourPixel){
|
||||||
|
options.getNeighbourPixel.fun = function (distX,distY) {
|
||||||
|
return options.getNeighbourPixel(pixels,x,y,distX,distY);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// iterate through pixels;
|
// iterate through pixels;
|
||||||
// this could possibly be more efficient; see
|
// this could possibly be more efficient; see
|
||||||
// https://github.com/p-v-o-s/infragram-js/blob/master/public/infragram.js#L173-L181
|
// https://github.com/p-v-o-s/infragram-js/blob/master/public/infragram.js#L173-L181
|
||||||
|
|||||||
Reference in New Issue
Block a user