lib: Update libs to use correctly ascii and code_point
[nit.git] / lib / bitmap / bitmap.nit
index 003eb6f..0aceff5 100644 (file)
@@ -133,7 +133,7 @@ class Bitmap
                        if b == null then
                                return
                        end
-                       bitmap_header[x] = b
+                       bitmap_header[x] = b.to_i
                end
                self.file_size = get_value(bitmap_header.subarray(2, 4))
                self.data_offset = get_value(bitmap_header.subarray(10, 4))
@@ -142,7 +142,7 @@ class Bitmap
                for x in [0..39] do
                        var b = fileReader.read_byte
                        if b == null then return
-                       dib_header[x] = b
+                       dib_header[x] = b.to_i
                end
                var dib_size = get_value(dib_header.subarray(0, 4))
                # only support BITMAPINFOHEADER
@@ -176,7 +176,7 @@ class Bitmap
                                        var red = bts[0] << 16
                                        var green = bts[1] << 8
                                        var blue = bts[2]
-                                       row.add(red + green + blue)
+                                       row.add(red.to_i + green.to_i + blue.to_i)
                                end
                                self.data.add(row)
                        end
@@ -199,10 +199,10 @@ class Bitmap
        # type, Int is used.
        private fun set_value(array: Array[Int], start_index: Int, value: Int)
        do
-               array[start_index] = value.bin_and(0x000000FF)
-               array[start_index + 1] = value.rshift(8).bin_and(0x000000FF)
-               array[start_index + 2] = value.rshift(16).bin_and(0x000000FF)
-               array[start_index + 3] = value.rshift(24).bin_and(0x000000FF)
+               array[start_index] = value & 0x000000FF
+               array[start_index + 1] = (value >> 8) & 0x000000FF
+               array[start_index + 2] = (value >> 16) & 0x000000FF
+               array[start_index + 3] = (value >> 24) & 0x000000FF
        end
 
        # Saves the bitmap into a file
@@ -211,11 +211,11 @@ class Bitmap
                var fw = new FileWriter.open(path)
                # Write bitmap header
                for x in [0..self.bitmap_header.length[ do
-                       fw.write(self.bitmap_header[x].ascii.to_s)
+                       fw.write(self.bitmap_header[x].code_point.to_s)
                end
                # Write dib header
                for x in [0..self.dib_header.length[ do
-                       fw.write(self.dib_header[x].ascii.to_s)
+                       fw.write(self.dib_header[x].code_point.to_s)
                end
                # Write color table (if any)
                # Write data (no padding for now)
@@ -223,12 +223,12 @@ class Bitmap
                        var row = self.data[x]
                        for y in [0..self.width[ do
                                var pixel = row[y]
-                               var red = pixel.rshift(16)
-                               var green = pixel.bin_and(0x00FF00).rshift(8)
-                               var blue = pixel.bin_and(0x000000FF)
-                               fw.write(red.ascii.to_s)
-                               fw.write(green.ascii.to_s)
-                               fw.write(blue.ascii.to_s)
+                               var red = pixel >> 16
+                               var green = (pixel & 0x00FF00) >> 8
+                               var blue = pixel & 0x000000FF
+                               fw.write(red.code_point.to_s)
+                               fw.write(green.code_point.to_s)
+                               fw.write(blue.code_point.to_s)
                        end
                end
                fw.close
@@ -241,9 +241,9 @@ class Bitmap
                        var row = self.data[x]
                        for y in [0..self.width[ do
                                var pixel = row[y]
-                               var red = pixel.rshift(16)
-                               var green = pixel.bin_and(0x00FF00).rshift(8)
-                               var blue = pixel.bin_and(0x000000FF)
+                               var red = pixel >> 16
+                               var green = (pixel & 0x00FF00) >> 8
+                               var blue = pixel & 0x000000FF
                                var lum = (0.2126 * red.to_f + 0.7152 * green.to_f + 0.0722 * blue.to_f).to_i
                                pixel = lum * 256 * 256 + lum * 256 + lum
                                self.data[x][y] = pixel