[Python]图片转字符画——这就是我的表情!!!!!!

背景

偶尔看到一些视频,他们把图片转字符画,平常也没有去关注,今天来捣鼓一下。
研究了一下还超级简单的,都是调用别人写好的框架。
网上也有很多教学。


代码实现

from PIL import Image
# 表示字符颜色,由深到浅(可自定义)
ascii_chars = " .,:-=+o*Oθ%@■▇"
# 像素点 转 字符
# 根据像素点颜色 选取 字符
def pixel_to_char(pixel):gray = int(0.2126 * pixel[0] + 0.7152 * pixel[1] + 0.0722 * pixel[2])unit = 256 / len(ascii_chars)return ascii_chars[int(gray / unit)]# 图片 转 字符画
# 参数:
#     image_path:图片路径,
#	  output_width : 图片大小
def image_to_ascii(image_path, output_width=100):img = Image.open(image_path)width, height = img.sizeoutput_height = int(output_width * height / width * 0.55)img = img.resize((output_width, output_height))ascii_img = ''for i in range(output_height):for j in range(output_width):pixel = img.getpixel((j, i))ascii_img += pixel_to_char(pixel)ascii_img += '\n'return ascii_img
# 调用
print(image_to_ascii(你图片的路径, 180))

效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/155574.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 的过期键 | Navicat 技术干货

Redis 是一种高性能的内存数据存储,以其速度和多功能性而闻名。其中一个有用的特性是为键设置过期时间的功能。在 Redis 中,为键设置过期时间对于管理数据和确保过时或临时数据自动从数据库中删除是至关重要的。在本文中,我们将探讨在 redis-…

【AI】深度学习——前馈神经网络——全连接前馈神经网络

文章目录 1.1 全连接前馈神经网络1.1.1 符号说明超参数参数活性值 1.1.2 信息传播公式通用近似定理 1.1.3 神经网络与机器学习结合二分类问题多分类问题 1.1.4 参数学习矩阵求导链式法则更为高效的参数学习反向传播算法目标计算 ∂ z ( l ) ∂ w i j ( l ) \frac{\partial z^{…

应对广告虚假流量,app广告变现该如何风控?

移动广告市场中的虚假流量一直是困扰各移动应用厂商的难题,广告作为app商业化变现最为直接快捷的途径,也引申出了流量作弊与反作弊的纷争。 根据《2021中国异常流量报告》,2021年中国品牌广告市场因异常流量造成的损失约为326亿人民币&#…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图,这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章,并配上自己的理解,因为这一章写的实在是太精彩了,希望能够分享给大家,共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

早安问候语早安心语,别把人生想太难,人生需要鼓励

1、别把人生想的太难,人生需要几分自我的鼓励,不管在什么时候,要有几分信念和信心,生活少不了哭哭笑笑。青山绿水依然在,来来往往人不同,要学会看得惯,还要学会看得开,你内心的平坦是…

【Java学习之道】继承与多态

引言 本文将介绍面向对象编程的核心概念——继承与多态。对于初学者来说,掌握这些基本概念是迈向Java高手的第一步。接下来,让我们一起揭开继承与多态的神秘面纱,感受它们的魅力吧! 一、继承 继承是面向对象编程的一个重要特性…

Linux 文件系统

目录 磁盘文件管理 认识磁盘 抽象认识磁盘 磁盘划分 inode vs 文件名 软硬链接 磁盘文件管理 前面我们说了关于 Linux 文件系统中 “已打开的文件” ,但是在系统中可不光只有已打开的文件,实际上,系统中还存在很多没有打开的文件。 既…

1600*C. Game On Leaves(博弈游戏树)

Problem - 1363C - Codeforces 解析: 我们将目标结点 x 当作树的根,显然,到当 x 的度为 1 的时候,此时行动的人胜利。 我们假设现在的情况为,只剩余三个点,再选择任意一个点,则对方获胜。但是两…

WSL2下的Docker配置和使用

在Windows的Linux子系统(Windows Subsystem for Linux)WSL2中安装、配置和使用 Docker,可以参考官方教程:WSL上的Docker远程容器入门. 重要步骤总结如下: 先决条件 确保你的计算机运行的是 Windows 10(更…

C++11 Qt QFutureWatcher lambda

目录 Lambda 介绍 【QT】Qt之QFutureWatcher 简述 传参: 还可以使用 QProgressDialog 作为阻堵 函数,变成同步; 完成后,关闭; MyQProgressDialog 效果: Lambda 介绍 Lambda 函数也叫匿名函数&…

信创办公–基于WPS的PPT最佳实践系列 (绘制自选图形)

信创办公–基于WPS的PPT最佳实践系列 (绘制自选图形) 目录 应用背景操作步骤1、记忆复制:CTRLD2、微移:CTRL四个方向键 应用背景 如果想将文字转为简单而形象的smartart图形,但是又找不到自己想要的图形,我…

什么是大数据,大数据简介

大数据的概念通俗的说法 大数据,按照我的理解比较通俗易懂的是在数据量很多很大的情况下数据处理速度需要足够快,用我们以前传统意义上的的技术比如关系型数据库mysql没办法处理或者处理起来非常复杂,必须有一些新的处理技术也就是大数据处理…

2024第八届杭州国际智慧城市博览会:建筑与智能,智慧与未来

浙江,中国最具活力的省份之一,将再次迎来一场盛大的智慧城市行业展会。2024年第八届浙江智慧城市博览会,由浙江省土木建筑学会发起主办,以“探索未来,智能引领”为主题,于2024年4月份在美丽的杭州国际博览中…

聚观早报 | 首个“5G-A智慧家庭”发布;李鹏称5G-A是5G发展选择

【聚观365】10月12日消息 首个“5G-A智慧家庭”发布 李鹏称5G-A是5G发展的自然选择 新版努比亚Z50S Pro开售 英特尔锐炫A580显卡全球同步上市 vivo X100系列年底登场 首个“5G-A智慧家庭”发布 在全球移动宽带论坛(MBBF2023)期间,du联合…

MT8390(Genio 700)安卓核心板参数_联发科MTK智能模组

MT8390安卓核心板是一款功能强大且高度集成的平台,专为广泛的人工智能(AI)和物联网(IoT)应用案例而设计。它具备高性能边缘处理、先进的多媒体和连接能力、多个高分辨率摄像头、连接的触摸屏显示以及多任务高级操作系统的使用。 MT8390安卓核心板采用了高性能的八核…

VS编译的时候不生成Release文件夹

方法描述: Build>Configuration Manager>Release 编译》配置管理》选择发布版本 再编译就有了 具体操作过程 第一步: 第二步: 第三步: 特此记录 anlog 2023年10月12日

基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 排除路径,增加avatar图片 # security配置 security:# 排除路径excludes:# 静态资源- /*.html…

C++——容器适配器

1. 什么是适配器? 容器适配器是C标准库中的一种数据结构,它可以将不同类型的容器(如vector、list、deque等)转换为另一种类型的容器。容器适配器提供了一种简单的方式来重新组织和访问数据,同时隐藏了底层容器的实现细…

【数据结构】算法的时间复杂度

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.算法时间复杂度定义 二.大O阶渐近表示法 🎏大O阶渐近表示法的定义 🎏推导大O阶方法 三.常见的时间复杂度 📌常数阶 &#x…

【C++进阶之路】C++11(中)

一、可变参数模板 1.基本概念 想要了解C语言的可变参数列表的原理可见&#xff1a;可变参数列表 这个跟C语言的可变参数列表有一定的关系,常用的printf与scanf的参数就包含可变参数列表。 那么可变参数模板是什么呢&#xff1f;举个例子便一目了然。 template<class...Arg…