mirror of https://github.com/aseprite/aseprite.git
				
				
				
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Lua
		
	
	
	
-- 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
 | 
						|
 | 
						|
   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
 | 
						|
 | 
						|
   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
 |