diff --git a/MineOS/Wallpapers/Afterlife.pic b/MineOS/Wallpapers/Afterlife.pic index db75448e..6cd2541f 100644 Binary files a/MineOS/Wallpapers/Afterlife.pic and b/MineOS/Wallpapers/Afterlife.pic differ diff --git a/MineOS/Wallpapers/AhsokaTano.pic b/MineOS/Wallpapers/AhsokaTano.pic index 2784a905..1631a2c1 100644 Binary files a/MineOS/Wallpapers/AhsokaTano.pic and b/MineOS/Wallpapers/AhsokaTano.pic differ diff --git a/MineOS/Wallpapers/Catniss.pic b/MineOS/Wallpapers/Catniss.pic index 5a1a2430..74a0ff7e 100644 Binary files a/MineOS/Wallpapers/Catniss.pic and b/MineOS/Wallpapers/Catniss.pic differ diff --git a/MineOS/Wallpapers/Ciri.pic b/MineOS/Wallpapers/Ciri.pic index a7c94057..ed6837aa 100644 Binary files a/MineOS/Wallpapers/Ciri.pic and b/MineOS/Wallpapers/Ciri.pic differ diff --git a/MineOS/Wallpapers/Girl.pic b/MineOS/Wallpapers/Girl.pic index d5dfabcb..91735d2d 100644 Binary files a/MineOS/Wallpapers/Girl.pic and b/MineOS/Wallpapers/Girl.pic differ diff --git a/MineOS/Wallpapers/GrammarNazi.pic b/MineOS/Wallpapers/GrammarNazi.pic index 74f345b4..24e25212 100644 Binary files a/MineOS/Wallpapers/GrammarNazi.pic and b/MineOS/Wallpapers/GrammarNazi.pic differ diff --git a/MineOS/Wallpapers/Harp.pic b/MineOS/Wallpapers/Harp.pic index ebf3ec1a..fa904516 100644 Binary files a/MineOS/Wallpapers/Harp.pic and b/MineOS/Wallpapers/Harp.pic differ diff --git a/MineOS/Wallpapers/Jodie.pic b/MineOS/Wallpapers/Jodie.pic index ef71ed72..f3800441 100644 Binary files a/MineOS/Wallpapers/Jodie.pic and b/MineOS/Wallpapers/Jodie.pic differ diff --git a/MineOS/Wallpapers/Luna.pic b/MineOS/Wallpapers/Luna.pic index 8d5f018c..27f2d655 100644 Binary files a/MineOS/Wallpapers/Luna.pic and b/MineOS/Wallpapers/Luna.pic differ diff --git a/MineOS/Wallpapers/Nocturnal.pic b/MineOS/Wallpapers/Nocturnal.pic index 144f0963..ad71342a 100644 Binary files a/MineOS/Wallpapers/Nocturnal.pic and b/MineOS/Wallpapers/Nocturnal.pic differ diff --git a/MineOS/Wallpapers/TemplarAssassin.pic b/MineOS/Wallpapers/TemplarAssassin.pic index ade50b7a..fdc0d03c 100644 Binary files a/MineOS/Wallpapers/TemplarAssassin.pic and b/MineOS/Wallpapers/TemplarAssassin.pic differ diff --git a/lib/image.lua b/lib/image.lua index 1b0829ea..85865f5b 100644 --- a/lib/image.lua +++ b/lib/image.lua @@ -706,22 +706,26 @@ function image.createImage(width, height, random) return picture end --- Функция оптимизации цвета текста у картинки, уменьшает число GPU-операций при отрисовке +-- Функция оптимизации цвета текста и символов у картинки, уменьшает число GPU-операций при отрисовке из буфера -- Вызывается только при сохранении файла, так что на быстродействии не сказывается, -- а в целом штука очень и очень полезная. Фиксит криворукость художников. -function image.optimize(picture, showOptimizationProcess) - local currentForeground = 0x000000 - local optimizationCounter = 0 +function image.optimize(picture) + local currentForeground, i1, i2, i3 = 0x000000, 0, 0, 0 for i = 1, #picture, constants.elementCount do - if picture[i + 3] == " " and picture[i + 1] ~= currentForeground then - picture[i + 1] = currentForeground - if showOptimizationProcess then picture[i + 3] = "#" end - optimizationCounter = optimizationCounter + 1 + i1, i2, i3 = i + 1, i + 2, i + 3 + --Если цвет фона равен цвету текста, и используется псевдографические полупиксели + if picture[i] == picture[i1] and (picture[i3] == "▄" or picture[i3] == "▀") then + picture[i3] = " " + end + + --Если символ равен пролбелу, т.е. цвет текста не учитывается, и если цвет текст не равен предыдущему, то присвоить ему значение предыдущего + if picture[i3] == " " and picture[i1] ~= currentForeground then + picture[i1] = currentForeground else - currentForeground = picture[i + 1] + currentForeground = picture[i1] end end - if showOptimizationProcess then ecs.error("Count of optimized pixels: " .. optimizationCounter) end + return picture end @@ -1022,15 +1026,15 @@ function image.load(path) --Читаем файлы в зависимости от метода --print("Загружаю файл типа " .. encodingMethod) if encodingMethod == 0 then - return loadRaw(file) + return image.optimize(loadRaw(file)) elseif encodingMethod == 1 then - return loadOCIF1(file) + return image.optimize(loadOCIF1(file)) elseif encodingMethod == 2 then - return loadOCIF2(file) + return image.optimize(loadOCIF2(file)) elseif encodingMethod == 3 then - return loadOCIF2(file, true) + return image.optimize(loadOCIF2(file, true)) elseif encodingMethod == 4 then - return loadOCIF2(file, true, true) + return image.optimize(loadOCIF2(file, true, true)) else file:close() error("Unsupported encoding method: " .. encodingMethod .. "\n")