嗨玩手游网

我的世界

我的世界

休闲益智|854.7MB

我的世界国际免费游戏是一...

下载

用Python将图片转为彩色字符画

说实话,原本我也没想到做个字符画还能有续集。今天搜教程,看到了有彩色版的转换方式。有了之前两个教程的基础,既解决了基本的字符处理问题( 用Python将图片转为字符画 ),又解决了界面问题( 用Python实现简易计算器 ),这次的实践就是轻松加愉快了。

如果没有基础,可以看前面两篇了解一下,这次就直接上代码吧。

1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

from PIL import Image, ImageFont, ImageDrawfrom tkinter import filedialog, Tkdef open_path(): root = Tk() root.withdraw() file_path = (filedialog.askopenfilename(title='选择图片文件', filetypes=[('All Files', '*')])) return file_pathprint('请选择图片:')IMG = open_path() # 图片路径ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")print('正在转换......')def get_char(r, g, b, alpha=256): # alpha透明度 if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1) / length return ascii_char[int(gray / unit)]def save_path(): # 保存图片路径 root = Tk() root.withdraw() file_path = (filedialog.asksaveasfilename(title='保存路径', filetypes=[('All Files', '*')])) return file_pathif __name__ == '__main__': img = Image.open(IMG) WIDTH = int(img.width / 6) HEIGHT = int(img.height / 15) img_txt = Image.new("RGB", (img.width, img.height), (255, 255, 255)) img = img.resize((WIDTH, HEIGHT), Image.NEAREST) txt = "" colors = [] for i in range(HEIGHT): for j in range(WIDTH): pixel = img.getpixel((j, i)) colorsend((pixel[0], pixel[1], pixel[2])) # 记录像素颜色信息 if (len(pixel) == 4): txt += get_char(pixel[0], pixel[1], pixel[2], pixel[3]) else: txt += get_char(pixel[0], pixel[1], pixel[2]) txt += '\n' colorsend((255, 255, 255)) dr = ImageDraw.Draw(img_txt) font = ImageFont.load_default().font x = y = 0 # 获取字体的宽高 font_w, font_h = font.getsize(txt[1]) font_h *= 1.37 # 为每个ascii进行上色 for i in range(len(txt)): if (txt[i] == '\n'): x += font_h y = -font_w dr.text([y, x], txt[i], colors[i]) y += font_w print('转换成功!') print('请选择保存路径:') save_path = save_path()+'.png' img_txt.save(save_path) print('保存成功') img = Image.open(save_path) img()

原图片、完成图、细节图如下。

[2022年07月12日原始发布于本作者博客]

>>查看原文: https://wwwgundam/archive/2022-07-12-how-to-draw-image-ascii-color-python-pil-tkinter/

VBA技术资料MF37:VBA_更改部分文本字体颜色

【分享成果,随喜正能量】越厉害的人越沉稳低调,越有实力的人越没有架子,心态越平静的人越懂得尊重别人。肯弯下腰的人不一定比你差,而是他的格局比你大,他弯下的是腰,挺直的却是人品。。

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。另外,为了方便大家学习和应用,我又推出了一部VBA汉英手册,这部手册覆盖了VBA的方方面面,与实际工作衔接度高。

为了更好的完善学员的知识结构,及丰富学员的实践经验,我还会提供给大家更多的VBA工具,有较复杂些的NZ系列工具,较容易些的YZ系列,同时还有MF系列技术资料,MF,YZ,NZ各个系列的工具,在平台上不会公布代码,大家可以根据自己的需要联系我选择。MF系列技术资料侧重VBA应用技巧和疑难杂症,里面有很多实用技巧提供给大家。对于MF系列资料,学员只要获得我所有教程(9套教程+汉英手册)中的三套及以上就可以索获这个系列资料;如果您获得我的全部教程+手册+工具(NZ,YZ),那么您可以获得我提供的所有MF系列技术资料,如果您还不是我的学员,您可以选择分享。今日给大家介绍的是VBA技术资料MF37:VBA_更改部分文本字体颜色

MF37:VBA_更改部分文本字体颜色

这个工具是展示VBA如何设置单元格内容的字体颜色的,一般情况下我们都是进行整体单元格的字体颜色设置,对于部分字体颜色设置用的不是很多,但VBA功能之强大完全也可以做到这一点。在MF37,我们将向您展示说明如何使用VBA宏来完成这项工作。MF37资料提供五种常用的应用场景:①使用Color Constant更改部分文本字体颜色 ②使用RGB更改部分文本字体颜色 ③使用ColorIndex更改部分文本字体颜色 ④查找和更改指定文本的字体颜色 ⑤更改两个字符间的文本字体颜色。工具中的代码可以单独使用,也可以放在您自己的程序中作为UDF使用。

在资料中,我在sheet2工作表中预置了一些数据,如下截图:

一 使用Color Constant更改部分文本字体颜色

我们看一下这个工具的应用界面,如下图:

点击按钮后,我们看sheet2的页面,程序中是给B2:B8单元格的文本做了颜色的设置:

二 使用RGB更改部分文本字体颜色

我们看一下这个工具的应用界面,如下图:

点击按钮后,我们看SHEET2的界面,程序中是给B9:B15单元格的文本做了颜色的设置:

三 使用ColorIndex更改部分文本字体颜色

我们看一下这个工具的应用界面,如下图:

点击按钮后,我们看sheet2的页面,程序中是给B2:B8单元格的文本做了颜色的设置:

四 查找和更改指定文本的字体颜色

我们看一下这个工具的应用界面,如下图:

点击按钮后,我们看sheet2的页面,程序中是给“地区”文本做了颜色的设置:

五 更改两个字符间的文本字体颜色

我们看一下这个工具的应用界面,如下图:

点击按钮后,我们看sheet2的页面,是给“部”“区”间的字符设置颜色:

代码见程序文件:VBA_ChangeFontColor.xlsm

java如何打印带颜色的日志到控制台

简介

添加一些颜色可以使日志更易于阅读。

在本文中,我们将了解如何为控制台的日志添加颜色。

在开始之前,我们需要知道,Eclipse 控制台中只支持部分颜色的设置。 Eclipse 中的控制台不支持由 Java 代码设置颜色,因此本文中介绍的解决方案在 Eclipse 控制台中不起作用,代码在IDEA演示。

2. 如何使用 ANSI 代码对日志进行颜色设置

实现彩色日志记录的最简单方法是使用 ANSI 转义字符,通常称为 ANSI 代码。

ANSI 代码是一些终端解释为命令的特殊字节序列。

让我们打印一个 ANSI 代码:

System.out.println("我是文本");System.out.println("\u001B[31m" + "我是红色文本");

在输出中,我们看到 ANSI 代码没有打印出来,字体颜色变成了红色:

注意,我们需要确保在完成日志打印后重置字体颜色。

很简单, 我们可以通过打印\u001B[31m,即ANSI复位命令。

重置命令会将控制台重置为其默认颜色。 不一定是黑色,它可以是白色或控制台配置的任何其他颜色。 例如:

System.out.println("我是文本");System.out.println("\u001B[31m" + "我是红色文本" + "\u001B[0m"+"清除颜色开始");System.out.println("现在没有颜色了");

输出结果:

大多数日志库都支持 ANSI 代码,这使我们能够构建一些丰富多彩的日志器。

例如,我们可以快速构建一个日志器,为不同的日志级别设置不同的颜色。

private static final Logger LOGGER = LoggerFactory.getLogger(ConsoleCorlor20221022.class);public void logDebug(String logging) { LOGGER.debug("\u001B[34m" + 打印日志 + "\u001B[0m");}public void logInfo(String logging) { LOGGER("\u001B[32m" + 打印日志 + "\u001B[0m");}public void logError(String logging) { LOGGER.error("\u001B[31m" + 打印日志 + "\u001B[0m");}

可以看到,控制台输出不同颜色的日志级别,使我们的日志更具可读性:

此外,ANSI 代码可用于控制的不仅仅是字体颜色——我们可以控制背景颜色、字体粗细和样式。

更多资讯
游戏推荐
更多+