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 |