|
|
Noise Algorithm - Imaging Lingo
Added on 8/23/2005
|
Turns an image into random noise using the dominant colours. The amount value varies the random pattern. This algorithm creates a truly random noise pattern, but from an image, not from nothing.
-- Noise Effect
-- ©2005 by Josh Chunick (josh@chunick.com)
-- This code is free to use in commercial applications
-- or however you want.If you use this code you
-- must keep the comments, including this message,
-- intact. Feel free to add any changes or make
-- improvements.
-- theImage is an image object
-- amount is an integer value
on Noise (theImage, amount)
theWidth = theImage.width - 1
theHeight = theImage.height - 1
newImage = theImage.duplicate()
-- the look-up table for the original image (done for speed purposes)
-- Use this if the
listX = []
listY = []
repeat with x = 0 to theWidth
repeat with y = 0 to theHeight
listY.add(theImage.getPixel(x,y))
end repeat
listX.add(listY)
listY = []
end repeat
-- draw each pixel in the new image
repeat with y1 = 0 to theHeight
repeat with x1 = 0 to theWidth
rndX = random(amount) - 2
rndY = random(amount) - 2
xMod = max(min(theWidth, x1 + rndX), 1)
yMod = max(min(theHeight, y1 + rndY), 1)
theColour = listX[xMod][yMod]
R = theColour.red
G = theColour.green
B = theColour.blue
newImage.setPixel(point(x1,y1), color(R, G, B))
end repeat
end repeat
return newImage
end
|
|