Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
-- CC:Tweaked Image Converter -- Converts PNG images to CC:Tweaked compatible formats local args = {...} if #args < 1 then print("CC:Tweaked Image Viewer") print("") print("Usage: imgview
") print("") print("Supported formats:") print(" .nfp - NFP paint format") print(" .ccimg - CC image format") print("") print("To create images, use the Python") print("converter on your PC:") print(" python image_converter.py input.png") return end local filename = args[1] -- Try different extensions local extensions = {"", ".nfp", ".ccimg"} local file = nil local format = nil for _, ext in ipairs(extensions) do local path = filename .. ext if fs.exists(path) then file = fs.open(path, "r") if ext == ".nfp" or ext == "" then format = "nfp" else format = "ccimg" end filename = path break end end if not file then print("Error: File not found: " .. filename) print("Tried: " .. filename .. ", " .. filename .. ".nfp, " .. filename .. ".ccimg") return end local content = file.readAll() file.close() -- Color character mapping local colorChars = { ["0"] = colors.white, ["1"] = colors.orange, ["2"] = colors.magenta, ["3"] = colors.lightBlue, ["4"] = colors.yellow, ["5"] = colors.lime, ["6"] = colors.pink, ["7"] = colors.gray, ["8"] = colors.lightGray, ["9"] = colors.cyan, ["a"] = colors.purple, ["b"] = colors.blue, ["c"] = colors.brown, ["d"] = colors.green, ["e"] = colors.red, ["f"] = colors.black, } -- Parse and display NFP format local function displayNFP(content) term.setBackgroundColor(colors.black) term.clear() term.setCursorPos(1, 1) local y = 1 for line in content:gmatch("[^\n]+") do term.setCursorPos(1, y) for i = 1, #line do local char = line:sub(i, i) local color = colorChars[char:lower()] if color then term.setBackgroundColor(color) term.write(" ") elseif char == " " then term.setBackgroundColor(colors.black) term.write(" ") end end y = y + 1 end end -- Parse and display CCIMG format (custom format with more features) local function displayCCIMG(content) local data = textutils.unserialize(content) if not data then print("Error: Invalid .ccimg file") return end term.setBackgroundColor(colors.black) term.clear() for y, row in ipairs(data.pixels or data) do for x, colorChar in ipairs(row) do term.setCursorPos(x, y) local color = colorChars[colorChar:lower()] or colors.black term.setBackgroundColor(color) term.write(" ") end end end -- Display based on format if format == "nfp" then displayNFP(content) elseif format == "ccimg" then displayCCIMG(content) end -- Wait for key term.setCursorPos(1, 1) term.setBackgroundColor(colors.black) term.setTextColor(colors.white) local w, h = term.getSize() term.setCursorPos(1, h) term.setBackgroundColor(colors.gray) term.write(" Press any key to exit ") term.setBackgroundColor(colors.black) os.pullEvent("key") term.setBackgroundColor(colors.black) term.clear() term.setCursorPos(1, 1)
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)