local sprite = _G.app.activeSprite local colors = {["#000000"] = "0", ["#b00258"] = "1", ["#1e2bff"] = "2", ["#ce2dff"] = "3", ["#007e28"] = "4", ["#808080"] = "5", ["#00a9ff"] = "6", ["#9eabff"] = "7", ["#615400"] = "8", ["#ff5600"] = "9", ["#ff81d7"] = "b", ["#31d200"] = "c", ["#e1d400"] = "d", ["#4ffda7"] = "e", ["#ffffff"] = "f"} local function hex__3ergb(rgb) return {r = tonumber(rgb:sub(2, 3), 16), g = tonumber(rgb:sub(4, 5), 16), b = tonumber(rgb:sub(6, 7), 16)} end local function alist_len(alist) local len = 0 for k, v in pairs(alist) do len = (1 + len) end return len end if sprite then local pal = Palette(alist_len(colors)) local image = Image(sprite) do local acc = "" for it in image:pixels() do local raw = it() local x = it.x local y = it.y local r = app.pixelColor.rgbaR(raw) local g = app.pixelColor.rgbaG(raw) local b = app.pixelColor.rgbaB(raw) local _1_ if (x == 15) then _1_ = "\n" else _1_ = "" end acc = (acc .. (colors[string.format("#%02x%02x%02x", r, g, b)] or "") .. _1_) end app.clipboard.text = acc end local len = 0 for color, _ in pairs(colors) do pal:setColor(len, Color(hex__3ergb(color))) len = (1 + len) end sprite:setPalette(pal) return app.refresh() else return nil end