2018-09-03 21:40:09 +00:00
|
|
|
-- Copyright (C) 2018 David Capello
|
|
|
|
--
|
|
|
|
-- This file is released under the terms of the MIT license.
|
|
|
|
-- Read LICENSE.txt for more information.
|
|
|
|
|
|
|
|
local pc = app.pixelColor
|
|
|
|
|
|
|
|
-- Iterate pixels
|
|
|
|
do
|
|
|
|
local spr = Sprite(2, 2)
|
|
|
|
local image = app.site.image
|
|
|
|
local colors = { pc.rgba(255, 0, 0, 255),
|
|
|
|
pc.rgba(0, 255, 0, 255),
|
|
|
|
pc.rgba(255, 0, 255, 255),
|
|
|
|
pc.rgba(255, 0, 255, 255) }
|
|
|
|
local xy = {
|
|
|
|
{ x=0, y=0 },
|
|
|
|
{ x=1, y=0 },
|
|
|
|
{ x=0, y=1 },
|
|
|
|
{ x=1, y=1 } }
|
|
|
|
|
|
|
|
local c = 1
|
|
|
|
for y=0,image.height-1 do
|
|
|
|
for x=0,image.width-1 do
|
|
|
|
image:putPixel(x, y, colors[c])
|
|
|
|
c = c+1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
c = 1
|
|
|
|
for y=0,image.height-1 do
|
|
|
|
for x=0,image.width-1 do
|
|
|
|
assert(colors[c] == image:getPixel(x, y))
|
|
|
|
c = c+1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
c = 1
|
|
|
|
for it in image:pixels() do
|
|
|
|
assert(colors[c] == it())
|
|
|
|
assert(xy[c].x == it.x)
|
|
|
|
assert(xy[c].y == it.y)
|
|
|
|
c = c+1
|
|
|
|
end
|
|
|
|
|
2018-09-07 21:03:02 +00:00
|
|
|
c = 0
|
|
|
|
for it in image:pixels{x=1, y=0, width=1, height=2} do
|
|
|
|
local i = 1 + it.y*2 + it.x
|
|
|
|
assert(colors[i] == it())
|
|
|
|
assert(xy[i].x == it.x)
|
|
|
|
assert(xy[i].y == it.y)
|
|
|
|
c = c + 1
|
|
|
|
end
|
|
|
|
assert(c == 2)
|
|
|
|
|
|
|
|
-- Iterating outside
|
|
|
|
for it in image:pixels{x=2, y=0, width=2, height=2} do
|
|
|
|
assert(false)
|
|
|
|
end
|
|
|
|
|
2018-09-03 21:40:09 +00:00
|
|
|
c = 1
|
|
|
|
for it in image:pixels() do
|
|
|
|
it(pc.rgba(255, 32*c, 0, 255))
|
|
|
|
c = c+1
|
|
|
|
end
|
|
|
|
|
|
|
|
c = 1
|
|
|
|
for it in image:pixels() do
|
|
|
|
assert(pc.rgba(255, 32*c, 0, 255) == it())
|
|
|
|
c = c+1
|
|
|
|
end
|
|
|
|
end
|