diff --git a/debugImageApi.lua b/debugImageApi.lua index 27d7ec18..02a25471 100644 --- a/debugImageApi.lua +++ b/debugImageApi.lua @@ -1,24 +1,28 @@ --------- OCIF Image Format -------- +-------------------------------------------- OCIF Image Format ----------------------------------------------------------- --- Автор: Pirnogion --- VK: https://vk.com/id88323331 --- Соавтор: IT --- VK: https://vk.com/id7799889 +local copyright = [[ + + Автор: Pirnogion + VK: https://vk.com/id88323331 + Соавтор: IT + VK: https://vk.com/id7799889 ------------------------------------ +]] +--------------------------------------- Подгрузка библиотек -------------------------------------------------------------- local component = require("component") local unicode = require("unicode") local fs = require("filesystem") local gpu = component.gpu +-------------------------------------------- Переменные ------------------------------------------------------------------- + +--Массив библиотеки local imageAPI = {} --------------------------------------------- Константы ------------------------------------------------------------------- - ---.ocif сигнатура файла +--Cигнатура OCIF-файла local ocif_signature1 = 0x896F6369 local ocif_signature2 = 0x00661A0A --7 bytes: 89 6F 63 69 66 1A 0A local ocif_signature_expand = { string.char(0x89), string.char(0x6F), string.char(0x63), string.char(0x69), string.char(0x66), string.char(0x1A), string.char(0x0A) } @@ -35,7 +39,7 @@ local constants = { ---------------------------------------- Локальные функции ------------------------------------------------------------------- ---Выделить бит-терминатор в первом байте utf8 символа: 1100 0010 --> 0010 0000 +--Выделить бит-терминатор в первом байте UTF-8 символа: 1100 0010 --> 0010 0000 local function selectTerminateBit_l() local prevByte = nil local prevTerminateBit = nil @@ -75,13 +79,9 @@ local function readBytes(file, bytes) return readedNumber end ---Преобразует цвет в HEX-записи в RGB-запись +--Преобразует цвет из HEX-записи в RGB-запись local function HEXtoRGB(color) - local rr = bit32.rshift( color, 16 ) - local gg = bit32.rshift( bit32.band(color, 0x00ff00), 8 ) - local bb = bit32.band(color, 0x0000ff) - - return rr, gg, bb + return bit32.rshift( color, 16 ), bit32.rshift( bit32.band(color, 0x00ff00), 8 ), bit32.band(color, 0x0000ff) end --Аналогично, но из RGB в HEX @@ -89,7 +89,7 @@ local function RGBtoHEX(rr, gg, bb) return bit32.lshift(rr, 16) + bit32.lshift(gg, 8) + bb end ---Смешивание двух цветов на основе альфа-канала второго. +--Смешивание двух цветов на основе альфа-канала второго local function alphaBlend(back_color, front_color, alpha_channel) local INVERTED_ALPHA_CHANNEL = 255 - alpha_channel @@ -110,7 +110,7 @@ local function convert24bitTo8bit( hexcolor24 ) return bit32.lshift( bit32.rshift(rr, 5), 5 ) + bit32.lshift( bit32.rshift(gg, 5), 2 ) + bit32.rshift(bb, 6) end ---Конвертация 8-битной палитры в-24 битную +--Конвертация 8-битной палитры в 24-битную local function convert8bitTo24bit( hexcolor8 ) local rr = bit32.lshift( bit32.rshift( hexcolor8, 5 ), 5 ) local gg = bit32.lshift( bit32.rshift( bit32.band( hexcolor8, 28 ), 2 ), 5 ) @@ -129,7 +129,7 @@ local function decompressPixel( compressed_pixel ) return bit32.rshift( compressed_pixel, constants.byteSize * 2 ), bit32.rshift( bit32.band( compressed_pixel, 0x00FF00 ), constants.byteSize ), bit32.band( compressed_pixel, 0x0000FF ) end ---Подготавливает цвета и символ для записи в файл +--Подготавливает цвета и символ для записи в файл сжатого формата local function encodePixel(compressed_pixel, char) local new_fg, new_bg, alpha = decompressPixel( compressed_pixel ) local ascii_char1, ascii_char2, ascii_char3, ascii_char4, ascii_char5, ascii_char6 = string.byte( char, 1, 6 ) @@ -219,7 +219,7 @@ function image.saveCompressed(path, picture) file:close() end ---Чтение из файла сжатого OCIF-формата изображения, возвращает массив типа 2 (см. конец файла) +--Чтение из файла сжатого OCIF-формата изображения, возвращает массив типа 2 (подробнее о типах см. конец файла) function image.loadCompressed(path) local picture = {} local file = assert( io.open(path, "rb"), FILE_OPEN_ERROR ) @@ -249,7 +249,7 @@ end ------------------------------ Все, что касается сырого формата ------------------------------------------------------------ ---Сохранение в файл сырого формата изображения типа 2 (см. конец файла) +--Сохранение в файл сырого формата изображения типа 2 (подробнее о типах см. конец файла) function image.saveRaw(path, picture) local file = assert( io.open(path, "w"), FILE_OPEN_ERROR ) @@ -268,7 +268,7 @@ function image.saveRaw(path, picture) file:close() end ---Загрузка из файла сырого формата изображения типа 2 (см. конец файла) +--Загрузка из файла сырого формата изображения типа 2 (подробнее о типах см. конец файла) function image.loadRaw(path) local file = assert( io.open(path, "r"), FILE_OPEN_ERROR ) local picture = {} @@ -301,8 +301,8 @@ end ----------------------------------- Вспомогательные функции программы ------------------------------------------------------------ ---Оптимизировать и сгруппировать по цветам картинку типа 2 (см. конец файла) -function image.optimizeForDrawing(picture) +--Оптимизировать и сгруппировать по цветам картинку типа 2 (подробнее о типах см. конец файла) +function image.convertToGroupedImage(picture) --Создаем массив оптимизированной картинки local optimizedPicture = {} --Задаем константы @@ -326,12 +326,7 @@ function image.optimizeForDrawing(picture) xPos = (xPos == picture.width) and 1 or xPos + 1 --Если xPos равняется 1, то yPos++, а если нет, то похуй yPos = (xPos == 1) and yPos + 1 or yPos - --Очищаем старый массив, т.к. он более не понадобится - picture[i], picture[i + 1] = nil, nil end - --Очищаем остатки массива в памяти - picture.width, picture.height = nil, nil - picture = nil --Возвращаем оптимизированный массив return optimizedPicture end @@ -358,8 +353,7 @@ function image.convertRawPictureToOptimizedPicture(rawPicture) --Очищаем оперативку rawPicture.width, rawPicture.height = nil, nil; rawPicture = nil --Возвращаем самый крутой и мегаоптимизированный массив - local groupedPicture = image.optimizeForDrawing(optimizedPicture) - return groupedPicture + return optimizedPicture end --Нарисовать по указанным координатам картинку указанной ширины и высоты для теста @@ -380,7 +374,7 @@ function image.drawRandomImage(x, y, width, height) table.insert(picture, symbol) end end - local optimizedPicture = image.optimizeForDrawing(picture) + local optimizedPicture = image.convertToGroupedImage(picture) image.draw(x, y, optimizedPicture) end @@ -411,18 +405,18 @@ function image.load(path) local fileFormat = getFileFormat(path) --Проверяем соответствие формата файла if fileFormat == constants.compressedFileFormat then - local picture = image.loadCompressed(path) - return image.optimizeForDrawing(picture) + return image.loadCompressed(path) elseif fileFormat == constants.rawFileFormat then - local picture = image.loadRaw(path) - return image.optimizeForDrawing(picture) + return image.loadRaw(path) else error("Unsupported file format.\n") end end ---Отрисовка изображения типа 3 (см. конец файла) -function image.draw(x, y, picture) +--Отрисовка изображения типа 3 (подробнее о типах см. конец файла) +function image.draw(x, y, rawPicture) + --Конвертируем в групповое изображение + local picture = image.convertToGroupedImage(rawPicture) --Все как обычно x, y = x - 1, y - 1 --Переменные, чтобы в цикле эту парашу не создавать @@ -452,46 +446,121 @@ function image.draw(x, y, picture) end end --Рисуем символ на экране - gpu.set(x + xPos, y + yPos, symbol) + gpu.set(x + xPos, y + yPos, symbol) + --Выгружаем сгруппированное изображение из памяти + picture[background][foreground][i], picture[background][foreground][i + 1], picture[background][foreground][i + 2], picture[background][foreground][i + 3] = nil, nil, nil, nil end + --Выгружаем данные о текущем цвете текста из памяти + picture[background][foreground] = nil end + --Выгружаем данные о текущем фоне из памяти + picture[background] = nil end end ------------------------------------------------------------------------------------------------------------------------- ---Примеры работы с библиотекой (раскомментируйте нужное): - -local rawPicture = { - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, - {{0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, -} +------------------------------------------ Примеры работы с библиотекой ------------------------------------------------ -local optimizedPicture = image.convertRawPictureToOptimizedPicture(rawPicture) +-- local event = require("event") -image.draw(2, 2, optimizedPicture) +-- local file = io.open("colors.lua", "w") + +-- ecs.prepareToExit() + +-- local massiv = {} + +-- local xSize, ySize = gpu.getResolution() + +-- local i = 0 +-- local yPos = 8 +-- while i <= 0xffffff do +-- local color = i +-- local compressed = convert24bitTo8bit(color) +-- local decompressed = convert8bitTo24bit(compressed) + +-- local strColor = HEXtoSTRING(color, 6, true) +-- local strCompressed = HEXtoSTRING(compressed, 2, true) + +-- ecs.drawButton(2, 2, 10, 3, strColor, color, 0xffffff - color) +-- ecs.drawButton(14, 2, 10, 3, strCompressed, decompressed, 0xffffff - decompressed) + +-- ecs.colorTextWithBack(2, 6, 0xffffff, 0x262626, "Идет сравнение цветов, ".. math.floor(i / 0xffffff * 100).."% завершено") + +-- local _,_,first = gpu.get(2,2) +-- local _,_,second = gpu.get(14,2) + +-- if first == second then +-- if not massiv[compressed] then +-- massiv[compressed] = color +-- file:write("[", strCompressed, "] = ", strColor, "\n") +-- ecs.colorTextWithBack(2, yPos, color, 0x262626, "Найдено соответствие: "..strCompressed.." = "..strColor) +-- yPos = yPos + 1 +-- if yPos >= ySize then yPos = 8; ecs.prepareToExit() end +-- end +-- end + +-- i = i + 60 + +-- --os.sleep(0.1) + +-- end + +-- file:close() +-- ecs.prepareToExit() + + + + + + + + + + + + + + + + +-- --Пример изображения типа 1 (подробнее о типах см. конец файла) +-- local rawPicture = { +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x33ff66, 0x0092ff, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x336d3f, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x004936, 0x00926d, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0xff6d80, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x338592, 0x003f49, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x1e1e1e, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x004936, 0x339286, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x339286, 0x004936, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff4940, 0x004940, 0x00, " "}, {0xff0000, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0x338592, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x003f49, 0xffffff, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0x004940, 0xffffff, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0xcc0000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x990000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- {{0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0x660000, 0x004940, 0x00, " "}, {0x660000, 0x004940, 0x00, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}, {0xffffff, 0xcccccc, 0xff, " "}}, +-- } +-- --Конвертируем изображение типа 1 в изображение типа 2 для отрисовки +-- local optimizedPicture = image.convertRawPictureToOptimizedPicture(rawPicture) + +-- --Рисуем сконвертированное изображение +-- image.draw(2, 2, optimizedPicture) + + +------------------------------------------ Типы массивов изображений --------------------------------------------------- --[[ -Ниже представлены все возможные типы массивов изображений: - Тип 1 (сырое изображение, самый неоптимизированный формат): + Тип 1: + + Изображение без сжатия, используется как дружелюбная к человеку заготовка, + ее очень легко понять и изменить простым текстовым редактором. Из минусов + можно отметить крайне высокий расход оперативной памяти. Структура: local picture = { @@ -506,32 +575,44 @@ image.draw(2, 2, optimizedPicture) {{0xffffff, 0x000000, 0x00, "E"}, {0xff00ff, 0x00ff00, 0xac, "R"}}, } - Тип 2 (основной формат изображения, линейная запись данных о пикселях): + Тип 1 легко конвертируется во тип 2 с помощью функции: + Изображение типа 2 = image.convertRawPictureToOptimizedPicture( Сюда кидаем массив изображения типа 1 ) + + Тип 2: + + Основной формат изображения, линейная запись данных о пикселях, + сжатие двух цветов и альфа-канала в одно число. Минимальный расход + оперативной памяти, однако для изменения цвета требует декомпрессию. Структура: - local picture = { - width = ширина изображения, - height = высота изображения, - Сжатые цвета и альфа-канал, - Символ, - Сжатые цвета и альфа-канал, - Символ, - ... - } + + local picture = { + width = ширина изображения, + height = высота изображения, + Сжатые цвета и альфа-канал, + Символ, + Сжатые цвета и альфа-канал, + Символ, + ... + } Пример: - local picture = { - width = 2, - height = 2, - 0xff00aa, - "Q", - 0x88aacc, - "W", - 0xff00aa, - "E", - 0x88aacc, - "R" - } + + local picture = { + width = 2, + height = 2, + 0xff00aa, + "Q", + 0x88aacc, + "W", + 0xff00aa, + "E", + 0x88aacc, + "R" + } + + Тип 2 конвертируется только в тип 3 и только для отрисовки на экране: + Изображение типа 3 = image.convertToGroupedImage( Сюда кидаем массив изображения типа 2 ) Тип 3 (сгруппированный по цветам формат, ипользуется только для отрисовки изображения):