使用 Replit 作为我的 IDE,我尝试创建一个输出调色板的程序(在控制台、文本文件或其他地方)。如何输出显示特定 rgb(或其他)值颜色的内容?
我相信宝石 Colorize 和 Rainbow 不允许您自定义文本的颜色。 我尝试过一些游戏创建 gem,例如 Ruby2D 或 Gosu,但由于它们依赖于 SDL2,因此我因 Replit 和我的 Linux 平台而遇到了问题。
请帮忙,我在这里有点绝望,因为这是一个学校项目。谢谢大家
使用 Replit 作为我的 IDE,我正在尝试创建一个输出调色板的程序(在控制台、文本文件或其他东西中)
调色板通常以特定文件格式存储,请参阅 https://www.selapa.net/swatches/colors/fileformats.php 了解详细概述。
您可以按照文件格式描述或使用库自行生成此类文件,例如ASE调色板.
请注意,这不会输出任何颜色。您必须在 GIMP 或 Photoshop 等图形程序中打开调色板。
如何输出显示特定 rgb(或其他)值颜色的内容?
这是一项不同的任务。程序不能直接输出颜色。他们可以输出文本或生成图像文件。
文本方面,您可以输出ANSI转义序列。这些代码可以被许多终端(包括 Replit)解释,并会产生彩色文本。
要获取(24 位)RGB 颜色,有:
ESC[38;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB foreground color
ESC[48;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB background color
在 Ruby 中:(
\e
是转义字符,\e[0m
重置颜色)
puts "\e[38;2;244;128;36mOrange foreground\e[0m"
puts "\e[48;2;244;128;36mOrange background\e[0m"
它将打印为:(在 Replit 中)
图像方面,您可以使用 ChunkyPNG,一个古老但有效的 PNG 库,没有外部依赖。
在 Replit 中,创建一个“Ruby”项目,并将 gem 添加到您的
Gemfile
:
gem "chunky_png"
然后将
main.rb
更改为:
require "chunky_png"
color = ChunkyPNG::Color.rgb(244, 128, 36) # Stack Overflow orange
image = ChunkyPNG::Image.new(100, 100, color)
image.save("color.png")
并运行项目。
这应该安装 gem 并在项目的根目录中生成一个新文件
color.png
:
您可以在Replit中打开PNG或下载它。