ASCII Generator v1.0
本文最后更新于30 天前,其中的信息可能已经过时,如有错误请发送邮件到 sunrisetsn@gmail.com

这是项目的第一个正式版本。最初只是想实现图片转字符画,后来慢慢加入了 GUI、PNG 导出以及彩色 ASCII 等功能。目前已经能够满足日常图片转换需求,后续也会继续完善更多特性。

——一个基于 Python 开发的 ASCII 字符画生成器。

前言:

原图为X平台(原Twitter)的Kaigen 1025(@KTx3rl8o)老师所画,如有侵权必删!

转出来的字符画有30MB大小,这里只能放压缩后的图片,不过细看应该还是能看见很模糊的字符。

一.功能

  • 简洁的图形化界面(GUI)
  • 支持导入 PNG / JPG / JPEG / BMP 等常见图片格式
  • 支持自定义 ASCII 输出宽度
  • 支持实时预览生成的 ASCII 字符画
  • 支持导出 TXT 字符画文件
  • 支持导出 PNG 图片
  • 支持彩色 ASCII(Color ASCII)

二.技术栈

技术用途
Python 3项目开发语言
OpenCV (cv2)图片读取、灰度转换、缩放、图像增强
Pillow (PIL)字符绘制、PNG 导出、字体渲染
PySide6 (Qt)GUI 图形界面开发

三.使用到的主要模块

①OpenCV

负责图像处理。

主要使用:

            cv2.imread()
            cv2.cvtColor()
            cv2.resize()
            cv2.convertScaleAbs()

实现了:

  • 图片读取
  • RGB 转灰度图
  • 图片缩放
  • 对比度调整
  • Gamma 校正
  • 彩色图片读取

②Pillow

负责字符画渲染。

主要使用:

            Image
            ImageDraw
            ImageFont

实现:

  • 导出 PNG
  • 创建画布
  • 加载字体
  • 绘制字符

③PySide6

整个软件界面均基于 Qt 开发。

主要使用:

            QMainWindow
            QWidget
            QLabel
            QPushButton
            QLineEdit
            QTextEdit
            QCheckBox
            QHBoxLayout
            QVBoxLayout
            QFileDialog
            QMessageBox
            QPixmap

实现:

  • 图片选择
  • 图片预览
  • ASCII 实时预览
  • 参数输入
  • 按钮交互

四.实现原理

整个转换流程如下:

原图


读取图片(OpenCV)


灰度化


图像增强(对比度、Gamma)


按照设定宽度缩放


根据灰度值映射 ASCII 字符


生成字符画

├── 导出 TXT

└── Pillow 渲染


导出 PNG

五.彩色ASCII

彩色 ASCII 的实现思路比较简单:

字符由灰度决定,颜色则保留原图对应位置的 RGB 信息。

灰度

决定使用哪个字符

RGB

决定字符颜色

最终逐字符绘制到 PNG,因此能够保留原图的大致色彩,同时拥有 ASCII 字符画的视觉效果。

六.开发记录

这是我从零开始完成的第一个图像处理小项目。从最初只能输出 TXT,到后来加入 GUI、PNG 渲染、彩色 ASCII,在不断调试字符比例、字体、图像缩放以及颜色映射的过程中,对 OpenCV、Pillow 和 Qt 的使用也逐渐熟悉了不少。

目前它还远称不上完善,但已经能够完成最初设想的功能。后续也会继续迭代,把它一步步做成一个更加完整、更加好用的 ASCII Generator。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇