#convert-images #image #retro #vga #color-palette #cga #image-resizing

bin+lib retroimg

将图像转换为类似在复古 IBM 硬件上的效果

4 个版本 (破坏性更新)

0.4.0 2023 年 10 月 18 日
0.3.0 2022 年 5 月 14 日
0.2.0 2022 年 3 月 8 日
0.1.0 2021 年 4 月 25 日

#486 in 图像

Apache-2.0 OR MIT

43KB
868

retroimg

Latest Version Continuous integration status dependency status

将图像转换为在复古 IBM 硬件上再现的外观。它还可以用于降低现有图像的色彩深度,以便在 DOS 游戏开发中使用。

原始 (640x480, 24 位 RGB) VGA (320x200, 256 种颜色,4:5 像素) EGA (320x200, 16 种颜色,4:5 像素) CGA (320x200, 4 种颜色 + 背景)

完整的图像处理管道由以下步骤组成

  1. 裁剪和调整图像分辨率到低分辨率;
  2. 主调色板颜色量化并将映射到受限制的调色板,以及使用抖动进行颜色限制;
  3. 最近邻缩放到高分辨率,以使像素看起来更好,同时启用非正方形像素。

每个步骤都可以进行调整或跳过,以满足您的需求。

注意:此应用程序并不声称能够完美地模拟旧硬件,但应该能够达到足够好的结果,以满足怀旧的需求。

使用工具

主要选项包括

  • -s | --standard:要模拟的视频图形标准。这仅影响使用的颜色,不影响图像分辨率。可能的选项
    • bw:1 位,黑白
    • cgacgamode4:CGA 模式 4,尝试选择最佳的子调色板和背景颜色
    • fullcga:CGA 主调色板的 16 种颜色
    • cgamode4high1:CGA 模式 4,始终使用高强度(黑色、洋红色、白色、黑色)的子调色板 1
    • ega:EGA 主调色板的 64 种颜色
    • 16bit:16 位颜色深度(4-5-4 RGB)
    • vga(默认)或 18bit:18 位主调色板
    • true24bit:24 位 RGB 颜色深度
  • -R WxH:将图像调整到的分辨率。
  • -S WxH:全图输出大小,从上一个选项调整而来。
  • -l L2-l L2:用于颜色调色板选择的颜色距离/损失算法

将图像转换为类似在VGA模式13h中呈现的效果,像素非正方形

retroimg «IMAGEFILE» -s vga -R 320x200 -S 1440x1080 -o «out.png»

选择损失最小的256色调色板。要使用更少的颜色(例如100种)

retroimg «IMAGEFILE» -s vga -R 320x200 -S 1440x1080 -c 100 -o «out.png»

选择输出宽度或高度,并让程序根据像素比例选择其他维度

retroimg «IMAGEFILE» -s vga -R 320x200 --height 1080 -r 4:5 -o «out.png»

这将按4:5的像素大小成比例拉伸图像,这意味着它最适合为这种设计而设计的图像。

完整选项列表通过 retroimg -hretroimg --help 显示。

使用库

执行这些操作所需的功能作为独立的函数提供。

为了消除与命令行应用程序相关的依赖关系,排除默认功能 cli

[dependencies.retroimg]
version = "0.3"
default-features = false

许可证

许可以下任一

任选。

除非您明确声明,否则您提交给作品包含在内的任何有意贡献,根据Apache-2.0许可证定义,将如上所述双重许可,没有其他条款或条件。

依赖项

~17MB
~136K SLoC