Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local gpu = require("component").gpu
- local PIF = {}
- local collib = {
- [0] = 0x000000,
- [1] = 0xFFFFFF,
- [2] = 0xF0F0F0,
- [3] = 0xE1E1E1,
- [4] = 0xD2D2D2,
- [5] = 0xC3C3C3,
- [6] = 0xb4b4b4,
- [7] = 0xA5A5A5,
- [8] = 0x969696,
- [9] = 0x878787,
- [10] = 0x787878,
- [11] = 0x696969,
- [12] = 0x5A5A5A,
- [13] = 0x4B4B4B,
- [14] = 0x3C3C3C,
- [15] = 0x2D2D2D,
- [16] = 0x1E1E1E,
- [17] = 0x0F0F0F,
- [18] = 0xFFFFC0,
- [19] = 0xFFFF80,
- [20] = 0xFFFF40,
- [21] = 0xFFFF00,
- [22] = 0xFFDBFF,
- [23] = 0xFFDBC0,
- [24] = 0xFFDB80,
- [25] = 0xFFDB40,
- [26] = 0xFFDB00,
- [27] = 0xFFB6FF,
- [28] = 0xFFB6C0,
- [29] = 0xFFB680,
- [30] = 0xFFB640,
- [31] = 0xFFB600,
- [32] = 0xFF92FF,
- [33] = 0xFF92C0,
- [34] = 0xFF9280,
- [35] = 0xFF9240,
- [36] = 0xFF9200,
- [37] = 0xFF6DFF,
- [38] = 0xFF6DC0,
- [39] = 0xFF6D80,
- [40] = 0xFF6D40,
- [41] = 0xFF6D00,
- [42] = 0xFF49FF,
- [43] = 0xFF49C0,
- [44] = 0xFF4980,
- [45] = 0xFF4940,
- [46] = 0xFF4900,
- [47] = 0xFF24FF,
- [48] = 0xFF24C0,
- [49] = 0xFF2480,
- [51] = 0xFF2440,
- [52] = 0xFF2400,
- [53] = 0xFF00FF,
- [54] = 0xFF00C0,
- [55] = 0xFF0080,
- [56] = 0xFF0040,
- [57] = 0xFF0000,
- [58] = 0xCCFFFF,
- [59] = 0xCCFFC0,
- [60] = 0xCCFF80,
- [61] = 0xCCFF40,
- [62] = 0xCCFF00,
- [63] = 0xCCDBFF,
- [64] = 0xCCDBC0,
- [65] = 0xCCDB80,
- [66] = 0xCCDB40,
- [67] = 0xCCDB00,
- [68] = 0xCCB6FF,
- [69] = 0xCCB6C0,
- [70] = 0xCCB680,
- [71] = 0xCCB640,
- [72] = 0xCCB600,
- [73] = 0xCC92FF,
- [74] = 0xCC92C0,
- [75] = 0xCC9280,
- [76] = 0xCC9240,
- [77] = 0xCC9200,
- [78] = 0xCC6DFF,
- [79] = 0xCC6DC0,
- [80] = 0xCC6D80,
- [81] = 0xCC6D40,
- [82] = 0xCC6D00,
- [83] = 0xCC49FF,
- [84] = 0xCC49C0,
- [85] = 0xCC4980,
- [86] = 0xCC4940,
- [87] = 0xCC4900,
- [88] = 0xCC24FF,
- [89] = 0xCC24C0,
- [90] = 0xCC2480,
- [91] = 0xCC2440,
- [92] = 0xCC2400,
- [93] = 0xCC00FF,
- [94] = 0xCC00C0,
- [95] = 0xCC0080,
- [96] = 0xCC0040,
- [97] = 0xCC0000,
- [98] = 0x99FFFF,
- [99] = 0x99FFC0,
- [100] = 0x99FF80,
- [101] = 0x99FF40,
- [102] = 0x99FF00,
- [103] = 0x99DBFF,
- [104] = 0x99DBC0,
- [105] = 0x99DB80,
- [106] = 0x99DB40,
- [107] = 0x99DB00,
- [108] = 0x99B6FF,
- [109] = 0x99B6C0,
- [110] = 0x99B680,
- [111] = 0x99B640,
- [112] = 0x99B600,
- [113] = 0x9992FF,
- [114] = 0x9992C0,
- [115] = 0x999280,
- [116] = 0x999240,
- [117] = 0x999200,
- [118] = 0x996DFF,
- [119] = 0x996DC0,
- [120] = 0x996D80,
- [121] = 0x996D40,
- [122] = 0x996D00,
- [123] = 0x9949FF,
- [124] = 0x9949C0,
- [125] = 0x994980,
- [126] = 0x994940,
- [127] = 0x994900,
- [128] = 0x9924FF,
- [129] = 0x9924C0,
- [130] = 0x992480,
- [131] = 0x992440,
- [132] = 0x992400,
- [133] = 0x9900FF,
- [134] = 0x9900C0,
- [135] = 0x990080,
- [136] = 0x990040,
- [137] = 0x990000,
- [138] = 0x66FFFF,
- [139] = 0x66FFC0,
- [140] = 0x66FF80,
- [141] = 0x66FF40,
- [142] = 0x66FF00,
- [143] = 0x66DBFF,
- [144] = 0x66DBC0,
- [145] = 0x66DB80,
- [146] = 0x66DB40,
- [147] = 0x66DB00,
- [148] = 0x66B6FF,
- [149] = 0x66B6C0,
- [150] = 0x66B680,
- [151] = 0x66B640,
- [152] = 0x66B600,
- [153] = 0x6692FF,
- [154] = 0x6692C0,
- [155] = 0x669280,
- [156] = 0x669240,
- [157] = 0x669200,
- [158] = 0x666DFF,
- [159] = 0x666DC0,
- [160] = 0x666D80,
- [161] = 0x666D40,
- [162] = 0x666D00,
- [163] = 0x6649FF,
- [164] = 0x6649C0,
- [165] = 0x664980,
- [166] = 0x664940,
- [167] = 0x664900,
- [168] = 0x6624FF,
- [169] = 0x6624C0,
- [170] = 0x662480,
- [171] = 0x662440,
- [172] = 0x662400,
- [173] = 0x6600FF,
- [174] = 0x6600C0,
- [175] = 0x660080,
- [176] = 0x660040,
- [177] = 0x660000,
- [178] = 0x33FFFF,
- [179] = 0x33FFC0,
- [180] = 0x33FF80,
- [181] = 0x33FF40,
- [182] = 0x33FF00,
- [183] = 0x33DBFF,
- [184] = 0x33DBC0,
- [185] = 0x33DB80,
- [186] = 0x33DB40,
- [187] = 0x33DB00,
- [188] = 0x33B6FF,
- [189] = 0x33B6C0,
- [190] = 0x33B680,
- [191] = 0x33B640,
- [192] = 0x33B600,
- [193] = 0x3392FF,
- [194] = 0x3392C0,
- [195] = 0x339280,
- [196] = 0x339240,
- [197] = 0x339200,
- [198] = 0x336DFF,
- [199] = 0x336DC0,
- [200] = 0x336D80,
- [201] = 0x336D40,
- [202] = 0x336D00,
- [203] = 0x3349FF,
- [204] = 0x3349C0,
- [205] = 0x334980,
- [206] = 0x334940,
- [207] = 0x334900,
- [208] = 0x3324FF,
- [209] = 0x3324C0,
- [210] = 0x332480,
- [211] = 0x332440,
- [212] = 0x332400,
- [213] = 0x3300FF,
- [214] = 0x3300C0,
- [215] = 0x330080,
- [216] = 0x330040,
- [217] = 0x330000,
- [218] = 0x00FFFF,
- [219] = 0x00FFC0,
- [220] = 0x00FF80,
- [221] = 0x00FF40,
- [222] = 0x00DBFF,
- [223] = 0x00DBC0,
- [224] = 0x00DB80,
- [225] = 0x00DB40,
- [226] = 0x00DB00,
- [227] = 0x00B6FF,
- [228] = 0x00B6C0,
- [229] = 0x00B680,
- [230] = 0x00B640,
- [231] = 0x00B600,
- [232] = 0x0092FF,
- [233] = 0x0092C0,
- [234] = 0x009280,
- [235] = 0x009240,
- [236] = 0x009200,
- [237] = 0x006DFF,
- [238] = 0x006DC0,
- [239] = 0x006D80,
- [240] = 0x006D40,
- [241] = 0x006D00,
- [242] = 0x0049FF,
- [243] = 0x0049C0,
- [244] = 0x004980,
- [245] = 0x004940,
- [246] = 0x004900,
- [247] = 0x0024FF,
- [248] = 0x0024C0,
- [249] = 0x002480,
- [250] = 0x002440,
- [251] = 0x002400,
- [252] = 0x0000FF,
- [253] = 0x0000C0,
- [254] = 0x000080,
- [255] = 0x000040,
- }
- function PIF.Draw(x, y, color)
- io.write(color)
- gpu.setBackground(collib[color])
- gpu.set(x, y, " ")
- gpu.setBackground(0x000000)
- end
- function PIF.DrawFile(path, x, y)
- local file = io.open(path, "rb")
- local signature = file:read(3)
- if signature == "PIF" then
- local width = string.byte(file:read(1))
- local height = string.byte(file:read(1))
- io.write("Sign = ", signature, " width = ", width, " height = ", height)
- for yi = 1, height do
- for xi = 1, width do
- local collor = file:read(1)
- if not collor then print("Закончился файл") break end
- collor = collib[string.byte(collor)]
- gpu.setBackground(collor)
- gpu.set(x+xi, y+yi, " ")
- end
- end
- end
- gpu.setBackground(0x000000)
- end
- function PIF.GetImage(path)
- local picture = {}
- local file = io.open(path, "rb")
- local signature = file:read(3)
- if signature == "PIF" then
- picture[1] = string.byte(file:read(1))
- picture[2] = string.byte(file:read(1))
- for i = 3, picture[1]*picture[2]+3 do
- picture[i] = string.byte(file:read(1))
- end
- end
- return table.unpack(picture)
- end
- function PIF.SaveTest(path)
- local file = io.open(path, "w")
- file:write("PIF\4\4\1\10\26\54\23\75\105\225\35\86\78\12\65\34\86\13")
- file:close()
- io.write("Тестовая PIF записана в "..path)
- end
- return PIF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement