width=300 height=150 pixels={} local positions={{1,1,30,10}, {100,10,50,20}, {50,100,100,15}} local color = -1 for _, p in ipairs(positions) do local x1, y1, w, h=unpack(p) for x=0, w-1 do pixels[(x1+x)+y1*width] = color pixels[(x1+x)+(y1+h-1)*width] = color end for y=1, h-2 do pixels[x1+(y1+y)*width] = color pixels[x1+w-1+(y1+y)*width] = color end end