上传文件至 lib

This commit is contained in:
2025-12-21 05:30:01 +08:00
parent 2e758a7838
commit 07d81eb43b
2 changed files with 366 additions and 0 deletions

313
lib/1.lua Normal file
View File

@@ -0,0 +1,313 @@
local f1 = {
{
"\159\143\159\143\139\143",
"ffffff",
"000000",
},
{
"\128\149\159\137\143\155",
"00ffff",
"ff0000",
},
{
"\130\151\128\148\148\148",
"000000",
"ffffff",
},
{
"\136\135\159\133\149\138",
"00f00f",
"ff0ff0",
},
}
local f2 = {
{
"\159\143\159\143\139\143",
"ffffff",
"000000",
},
{
"\128\149\151\157\153\151",
"00ffff",
"ff0000",
},
{
"\130\151\157\140\136\140",
"00ffff",
"ff0000",
},
{
"\136\135\149\142\134\145",
"00f00f",
"ff0ff0",
},
}
local f3 = {
{
"\159\143\132\159\128\148",
"ff0f00",
"00f0ff",
},
{
"\159\133\144\144\129\149",
"ff0000",
"00ffff",
},
{
"\128\129\144\130\143\157",
"0f00f0",
"f0ff0f",
},
{
"\130\149\128\131\128\149",
"0f0000",
"f0ffff",
},
}
local f4 = {
{
"\128\148\128\128\148\128",
"000000",
"ffffff",
},
{
"\130\151\130\131\151\131",
"000000",
"ffffff",
},
{
"\136\151\149\131\131\149",
"00f000",
"ff0fff",
},
{
"\159\149\143\153\153\143",
"f0f0ff",
"0f0f00",
},
}
local n = {" ","ffffff","ffffff"}
-- 创建 img 表结构
local img = {}
for i1 = 1, 8 do
img[i1] = {}
for i2 = 1, 4 do
img[i1][i2] = {}
end
end
-- ✅ 关键修复:将 logon 改为函数,每次返回新表
local function logon()
return {
" ",
"fffffffffffffffffffffffff",
"fffffffffffffffffffffffff"
}
end
-- 定义 logo 为普通表(不是函数)
local logo = {
{
" \139 ",
"fffffff0000000f000fffffff",
"ffffffffffffff0ffffffffff"
},
{
" \143\129\149 \132 ",
"fffffff0000ff00000fffffff",
"fffffffffff00f00fffffffff"
},
{
" \159\135 \149\143\158\135\149 ",
"fffffff0ff00000ff0fffffff",
"ffffffff00000ff00ffffffff"
},
{
" \149 \143\150\144 \131\133 ",
"ffffffff00000f0000fffffff",
"fffffff00000f0fffffffffff"
},
{
" \149 \136 \149 \131\144 ",
"ffffffff00f00f0f00fffffff",
"fffffff0000ff000fffffffff"
},
{
" \138 \131\133 \149 ",
"fffffff00000ff0000fffffff",
"ffffffff00000000fffffffff"
},
{
" \130\139\144 \149 ",
"fffffff000f0000000fffffff",
"ffffffffff000000fffffffff"
},
{
" \143\131 \135 ",
"fffffff00ff0000000fffffff",
"fffffffff000000ffffffffff"
},
{
" \143\131 ",
"fffffff00000000000fffffff",
"fffffffff000fffffffffffff"
},
{
" \143\135\129 ",
"fffffff00000000000fffffff",
"fffffffffffffffffffffffff"
},
}
local logo1 = {{},{},{},{}}
-- 第一组
for i = 1, 3 do
table.insert(logo1[1], logon())
end
-- 插入 logo 的每一帧
for _, frame in ipairs(logo) do
table.insert(logo1[1], frame)
end
for i = 1, 2 do
table.insert(logo1[1], logon())
end
logo1[1].duration = 1
-- 第二组
for i = 1, 2 do
table.insert(logo1[2], logon())
end
for _, frame in ipairs(logo) do
table.insert(logo1[2], frame)
end
for i = 1, 3 do
table.insert(logo1[2], logon())
end
-- 第三组
table.insert(logo1[3], logon())
for _, frame in ipairs(logo) do
table.insert(logo1[3], frame)
end
for i = 1, 4 do
table.insert(logo1[3], logon())
end
-- 第四组
for _, frame in ipairs(logo) do
table.insert(logo1[4], frame)
end
for i = 1, 5 do
table.insert(logo1[4], logon())
end
-- 填充 img 前 4 行
for i = 1, 4 do
img[i] = logo1[i]
end
-- 清理临时变量
logo1 = nil
logo = nil
-- 构建 img[5] 到 img[8]
for i=1,3 do
img[5][1][i] = n[i] .. f2[4][i] .. n[i] .. f4[4][i]
end
for i=1,3 do
img[5][2][i] = n[i] .. n[i] .. n[i] .. n[i]
end
for i=1,3 do
img[5][3][i] = n[i] .. n[i] .. n[i] .. n[i]
end
for i=1,3 do
img[5][4][i] = f1[1][i] .. n[i] .. f3[1][i] .. n[i]
end
for i=1,3 do
img[6][1][i] = n[i] .. f2[3][i] .. n[i] .. f4[3][i]
end
for i=1,3 do
img[6][2][i] = n[i] .. f2[4][i] .. n[i] .. f4[4][i]
end
for i=1,3 do
img[6][3][i] = f1[1][i] .. n[i] .. f3[1][i] .. n[i]
end
for i=1,3 do
img[6][4][i] = f1[2][i] .. n[i] .. f3[2][i] .. n[i]
end
for i=1,3 do
img[7][1][i] = n[i] .. f2[2][i] .. n[i] .. f4[2][i]
end
for i=1,3 do
img[7][2][i] = f1[1][i] .. f2[3][i] .. f3[1][i] .. f4[3][i]
end
for i=1,3 do
img[7][3][i] = f1[2][i] .. f2[4][i] .. f3[2][i] .. f4[4][i]
end
for i=1,3 do
img[7][4][i] = f1[3][i] .. n[i] .. f3[3][i] .. n[i]
end
for i=1,3 do
img[8][1][i] = f1[1][i] .. f2[1][i] .. f3[1][i] .. f4[1][i]
end
for i=1,3 do
img[8][2][i] = f1[2][i] .. f2[2][i] .. f3[2][i] .. f4[2][i]
end
for i=1,3 do
img[8][3][i] = f1[3][i] .. f2[3][i] .. f3[3][i] .. f4[3][i]
end
for i=1,3 do
img[8][4][i] = f1[4][i] .. f2[4][i] .. f3[4][i] .. f4[4][i]
end
-- 清理
f1 = nil
f2 = nil
f3 = nil
f4 = nil
n = nil
img.animation = true
img.secondsPerFrame = 0.1
-- ✅ 现在可以安全序列化
print(textutils.serialize(img[1]))
local function drawFrame(frame, term)
for y, row in ipairs(frame) do
term.setCursorPos(1, y)
term.blit(table.unpack(row))
end
if frame.palette then for i = 0, #frame.palette do
local c = frame.palette[i]
if type(c) == "table" then term.setPaletteColor(2^i, table.unpack(c))
else term.setPaletteColor(2^i, c) end
end end
if img.multiMonitor then term.setTextScale(img.multiMonitor.scale or 0.5) end
end
term.clear()
for i, frame in ipairs(img) do
drawFrame(frame, term)
if img.animation then sleep(frame.duration or img.secondsPerFrame or 0.05)
else read() break end
end
read()
term.setBackgroundColor(colors.black)
term.setTextColor(colors.white)
term.clear()
term.setCursorPos(1, 1)
for i = 0, 15 do term.setPaletteColor(2^i, term.nativePaletteColor(2^i)) end

53
lib/ys.lua Normal file
View File

@@ -0,0 +1,53 @@
-- 压缩函数
function rleCompress(str)
local result = {}
local i = 1
while i <= #str do
local char = str:sub(i, i)
local count = 1
while i + count <= #str and str:sub(i + count, i + count) == char do
count = count + 1
end
if count > 2 then
table.insert(result, ("[%d]%s"):format(count, char))
else
table.insert(result, char:rep(count))
end
i = i + count
end
return table.concat(result)
end
-- 解压函数
function rleDecompress(str)
local result = {}
local i = 1
while i <= #str do
if str:sub(i, i) == "[" then
local j = str:find("]", i)
local num = tonumber(str:sub(i+1, j-1))
local char = str:sub(j+1, j+1)
table.insert(result, char:rep(num))
i = j + 2
else
table.insert(result, str:sub(i, i))
i = i + 1
end
end
return table.concat(result)
end
-- 测试
file = fs.open("1.bimg","r")
original = file.readAll()
file.close()
local compressed = rleCompress(original)
print("原始:", original)
print("压缩:", compressed)
print("解压:", rleDecompress(compressed))
file = fs.open("12.bimg","w")
file.write(compressed)
file.close()