catchat/pixel.rb
2025-07-16 01:48:49 +00:00

61 lines
No EOL
911 B
Ruby

class Pixel
@mp = nil
@r = 0
@g = 0
@b = 0
def initialize(mp)
@mp = mp
@r = @mp.red
@g = @mp.green
@b = @mp.blue
end
def randomize
@r = ((@r >> 2) << 2) | rand(4)
@g = ((@g >> 2) << 2) | rand(4)
@b = ((@b >> 2) << 2) | rand(4)
end
def getMagickPixel
@mp.red = @r
@mp.green = @g
@mp.blue = @b
return @mp
end
def getPixelBits()
bits = 0
bits = (bits << 8) | @r
bits = (bits << 8) | @g
bits = (bits << 8) | @b
return bits
end
def encodeBits(bits)
@r = ((@r >> 2) << 2) | (bits & 3)
bits = bits >> 2
@g = ((@g >> 2) << 2) | (bits & 3)
bits = bits >> 2
@b = ((@b >> 2) << 2) | (bits & 3)
bits = bits >> 2
return bits
end
def decodeBits
bits = 0
bits = (bits << 2) | (@b & 3)
bits = (bits << 2) | (@g & 3)
bits = (bits << 2) | (@r & 3)
return bits
end
end