#==============================================================================
# ** Bitmap
#------------------------------------------------------------------------------
# This class handles and draws the bitmaps
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# * New method: x2
#--------------------------------------------------------------------------
def x2
bitmap = Bitmap.allocate
bitmap.send(:initialize, width * 2, height * 2)
width.times do |x|
height.times do |y|
px = get_pixel(x, y)
x2 = x * 2
y2 = y * 2
p1 = x == 0 ? px : get_pixel(x - 1, y)
p2 = x == width - 1 ? px : get_pixel(x + 1, y)
p3 = y == 0 ? px : get_pixel(x, y - 1)
p4 = y == height - 1 ? px : get_pixel(x, y + 1)
if p3 != p4 && p1 != p2
bitmap.set_pixel(x2 , y2, p1 == p3 ? p1 : px)
bitmap.set_pixel(x2 + 1, y2, p3 == p2 ? p2 : px)
bitmap.set_pixel(x2 , y2 + 1, p1 == p4 ? p1 : px)
bitmap.set_pixel(x2 + 1, y2 + 1, p4 == p2 ? p2 : px)
else
bitmap.fill_rect(x2, y2, 2, 2, px)
end
end
end
bitmap
end
end