mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-20 02:59:20 +01:00
Спосеба Bs0Dd'у
This commit is contained in:
parent
a9b88eb045
commit
70dd5a9d03
@ -78,110 +78,28 @@ encodingMethodsLoad[5] = function(file, picture)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
encodingMethodsSave[6] = function(file, picture)
|
local function loadOCIF67(file, picture, mode)
|
||||||
local function getGroupSize(t)
|
|
||||||
local size = 0
|
|
||||||
|
|
||||||
for key in pairs(t) do
|
|
||||||
size = size + 1
|
|
||||||
end
|
|
||||||
|
|
||||||
return size
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Grouping picture by it's alphas, symbols and colors
|
|
||||||
local groupedPicture = group(picture, true)
|
|
||||||
|
|
||||||
-- Writing 1 byte per image width and height
|
|
||||||
file:writeBytes(
|
|
||||||
picture[1],
|
|
||||||
picture[2]
|
|
||||||
)
|
|
||||||
|
|
||||||
-- Writing 1 byte for alphas array size
|
|
||||||
file:writeBytes(getGroupSize(groupedPicture))
|
|
||||||
|
|
||||||
for alpha in pairs(groupedPicture) do
|
|
||||||
local symbolsSize = getGroupSize(groupedPicture[alpha])
|
|
||||||
|
|
||||||
file:writeBytes(
|
|
||||||
-- Writing 1 byte for current alpha value
|
|
||||||
math.floor(alpha * 255),
|
|
||||||
-- Writing 2 bytes for symbols array size
|
|
||||||
bit32.rshift(symbolsSize, 8),
|
|
||||||
bit32.band(symbolsSize, 0xFF)
|
|
||||||
)
|
|
||||||
|
|
||||||
for symbol in pairs(groupedPicture[alpha]) do
|
|
||||||
-- Writing current unicode symbol value
|
|
||||||
file:write(symbol)
|
|
||||||
-- Writing 1 byte for backgrounds array size
|
|
||||||
file:writeBytes(getGroupSize(groupedPicture[alpha][symbol]))
|
|
||||||
|
|
||||||
for background in pairs(groupedPicture[alpha][symbol]) do
|
|
||||||
file:writeBytes(
|
|
||||||
-- Writing 1 byte for background color value (compressed by color)
|
|
||||||
background,
|
|
||||||
-- Writing 1 byte for foregrounds array size
|
|
||||||
getGroupSize(groupedPicture[alpha][symbol][background])
|
|
||||||
)
|
|
||||||
|
|
||||||
for foreground in pairs(groupedPicture[alpha][symbol][background]) do
|
|
||||||
file:writeBytes(
|
|
||||||
-- Writing 1 byte for foreground color value (compressed by color)
|
|
||||||
foreground,
|
|
||||||
-- Writing 1 byte for y array size
|
|
||||||
getGroupSize(groupedPicture[alpha][symbol][background][foreground])
|
|
||||||
)
|
|
||||||
|
|
||||||
for y in pairs(groupedPicture[alpha][symbol][background][foreground]) do
|
|
||||||
file:writeBytes(
|
|
||||||
-- Writing 1 byte for current y value
|
|
||||||
y,
|
|
||||||
-- Writing 1 byte for x array size
|
|
||||||
#groupedPicture[alpha][symbol][background][foreground][y]
|
|
||||||
)
|
|
||||||
|
|
||||||
for x = 1, #groupedPicture[alpha][symbol][background][foreground][y] do
|
|
||||||
file:writeBytes(groupedPicture[alpha][symbol][background][foreground][y][x])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
encodingMethodsLoad[6] = function(file, picture)
|
|
||||||
picture[1] = file:readBytes(1)
|
picture[1] = file:readBytes(1)
|
||||||
picture[2] = file:readBytes(1)
|
picture[2] = file:readBytes(1)
|
||||||
|
|
||||||
local currentAlpha, currentSymbol, currentBackground, currentForeground, currentY
|
local currentAlpha, currentSymbol, currentBackground, currentForeground, currentY
|
||||||
local alphaSize, symbolSize, backgroundSize, foregroundSize, ySize, xSize
|
|
||||||
|
|
||||||
alphaSize = file:readBytes(1)
|
for alpha = 1, file:readBytes(1) + mode do
|
||||||
|
|
||||||
for alpha = 1, alphaSize do
|
|
||||||
currentAlpha = file:readBytes(1) / 255
|
currentAlpha = file:readBytes(1) / 255
|
||||||
symbolSize = file:readBytes(2)
|
|
||||||
|
|
||||||
for symbol = 1, symbolSize do
|
for symbol = 1, file:readBytes(2) + mode do
|
||||||
currentSymbol = file:readUnicodeChar()
|
currentSymbol = file:readUnicodeChar()
|
||||||
backgroundSize = file:readBytes(1)
|
|
||||||
|
|
||||||
for background = 1, backgroundSize do
|
for background = 1, file:readBytes(1) + mode do
|
||||||
currentBackground = color.to24Bit(file:readBytes(1))
|
currentBackground = color.to24Bit(file:readBytes(1))
|
||||||
foregroundSize = file:readBytes(1)
|
|
||||||
|
|
||||||
for foreground = 1, foregroundSize do
|
for foreground = 1, file:readBytes(1) + mode do
|
||||||
currentForeground = color.to24Bit(file:readBytes(1))
|
currentForeground = color.to24Bit(file:readBytes(1))
|
||||||
ySize = file:readBytes(1)
|
|
||||||
|
|
||||||
for y = 1, ySize do
|
for y = 1, file:readBytes(1) + mode do
|
||||||
currentY = file:readBytes(1)
|
currentY = file:readBytes(1)
|
||||||
xSize = file:readBytes(1)
|
|
||||||
|
|
||||||
for x = 1, xSize do
|
for x = 1, file:readBytes(1) + mode do
|
||||||
image.set(
|
image.set(
|
||||||
picture,
|
picture,
|
||||||
file:readBytes(1),
|
file:readBytes(1),
|
||||||
@ -199,17 +117,17 @@ encodingMethodsLoad[6] = function(file, picture)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
encodingMethodsSave[7] = function(file, picture)
|
local function saveOCIF67(file, picture, mode)
|
||||||
local function getGroupSize(t)
|
local function getGroupSize(t)
|
||||||
local size = -1
|
local size = mode == 1 and -1 or 0
|
||||||
|
|
||||||
for key in pairs(t) do
|
for key in pairs(t) do
|
||||||
size = size + 1
|
size = size + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
return size
|
return size
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Grouping picture by it's alphas, symbols and colors
|
-- Grouping picture by it's alphas, symbols and colors
|
||||||
local groupedPicture = group(picture, true)
|
local groupedPicture = group(picture, true)
|
||||||
|
|
||||||
@ -262,7 +180,7 @@ encodingMethodsSave[7] = function(file, picture)
|
|||||||
-- Writing 1 byte for current y value
|
-- Writing 1 byte for current y value
|
||||||
y,
|
y,
|
||||||
-- Writing 1 byte for x array size
|
-- Writing 1 byte for x array size
|
||||||
#groupedPicture[alpha][symbol][background][foreground][y] - 1
|
#groupedPicture[alpha][symbol][background][foreground][y] - mode
|
||||||
)
|
)
|
||||||
|
|
||||||
for x = 1, #groupedPicture[alpha][symbol][background][foreground][y] do
|
for x = 1, #groupedPicture[alpha][symbol][background][foreground][y] do
|
||||||
@ -275,43 +193,20 @@ encodingMethodsSave[7] = function(file, picture)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
encodingMethodsSave[6] = function(file, picture)
|
||||||
|
saveOCIF67(file, picture, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
encodingMethodsLoad[6] = function(file, picture)
|
||||||
|
loadOCIF67(file, picture, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
encodingMethodsSave[7] = function(file, picture)
|
||||||
|
saveOCIF67(file, picture, 1)
|
||||||
|
end
|
||||||
|
|
||||||
encodingMethodsLoad[7] = function(file, picture)
|
encodingMethodsLoad[7] = function(file, picture)
|
||||||
picture[1] = file:readBytes(1)
|
loadOCIF67(file, picture, 1)
|
||||||
picture[2] = file:readBytes(1)
|
|
||||||
|
|
||||||
local currentAlpha, currentSymbol, currentBackground, currentForeground, currentY
|
|
||||||
|
|
||||||
for alpha = 1, file:readBytes(1) + 1 do
|
|
||||||
currentAlpha = file:readBytes(1) / 255
|
|
||||||
|
|
||||||
for symbol = 1, file:readBytes(2) + 1 do
|
|
||||||
currentSymbol = file:readUnicodeChar()
|
|
||||||
|
|
||||||
for background = 1, file:readBytes(1) + 1 do
|
|
||||||
currentBackground = color.to24Bit(file:readBytes(1))
|
|
||||||
|
|
||||||
for foreground = 1, file:readBytes(1) + 1 do
|
|
||||||
currentForeground = color.to24Bit(file:readBytes(1))
|
|
||||||
|
|
||||||
for y = 1, file:readBytes(1) + 1 do
|
|
||||||
currentY = file:readBytes(1)
|
|
||||||
|
|
||||||
for x = 1, file:readBytes(1) + 1 do
|
|
||||||
image.set(
|
|
||||||
picture,
|
|
||||||
file:readBytes(1),
|
|
||||||
currentY,
|
|
||||||
currentBackground,
|
|
||||||
currentForeground,
|
|
||||||
currentAlpha,
|
|
||||||
currentSymbol
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user