在小型 OLED 屏幕上显示自定义图像

MicroPython相关代码、库、软件、工具
回复
头像
shaoziyang
帖子: 3917
注册时间: 2019年 10月 21日 13:48

在小型 OLED 屏幕上显示自定义图像

#1

帖子 shaoziyang »

概述

在本文中,将展示如何使用免费工具将图像放在一个微型 OLED 屏幕上。 在 Pico Pong 中使用这种方法将徽标放在 MicroPython 中的 SSD1306 上,但可以使用您选择的编码语言和屏幕。 拍摄图像,将其拖到工具上并将其生成的代码复制到项目中。 我们提供 MicroPython 和 CircuitPython 示例代码。 我们将准确解释一切是如何运作的。 我们还将向您解释 Base 64 编码。 好处 将图像编码为可以放入代码中的简单字符串非常方便。 无需加载和保存图像文件,简单快捷。 我们尝试使用二进制数组(您将在命令行工具上看到),但这会使源代码太长。 将其转换为 Base64 编码的字符串要短得多。

获取我们所有的代码和示例图像

我们捆绑了一些示例图像,以及用于显示图像的示例代码。 我们还包括将图像转换为代码的命令行工具。 单击此处下载我们所有的代码、示例图像和终端命令, 或打开终端并输入:

代码: 全选

[color=#c9d1d9]git clone https://github.com/gurgleapps/image-to-code.git[/color]
图像编码工具

我们有一个在线工具,您可以在其中拖放、复制和粘贴。 我们还有一个用 python 编写的命令行工具,您可以在自己的机器上使用,并修改代码。


在线编码器

这是 我们在线编码器的链接 。 只需将您的图像拖入框中。 它现在应该出现在下面,并带有一个小缩略图。 单击转换,它会将您的图像转换为(Base64 编码)文本。 复制图像下方框中的文本。


命令行工具

你会发现命令行工具捆绑在 . 我们的图像编码 Github 仓库, 您可以在 PATH 环境变量中添加工具的路径,或者只打开一个 shell 并导航到包含您下载的 convert_image.py 脚本的文件夹。 现在,如果您运行终端命令:

代码: 全选

[color=#c9d1d9]./convert_image.py[/color]
你可能会得到这个错误:

代码: 全选

[color=#c9d1d9]zsh: permission denied: ./convert_image.py[/color]
这就是说您没有执行/运行此命令的权限。 要解决此问题,只需键入:

代码: 全选

[color=#c9d1d9]chmod a+x convert_image.py[/color]
a 代表全部,x 代表执行。 因此,这将使您计算机上的每个人都有权运行此命令。 现在再次运行它,但将它传递给您的图像的路径,如下所示:

代码: 全选

[color=#c9d1d9]./convert_image.py path_to_image.png[/color]
从它说Base64解码到最后的地方复制。 如果您愿意,请查看脚本中的代码,看看它是如何工作的。


在线解码器

对您刚刚生成的代码感到好奇吗? 这是 我们在线解码器的链接 。 您不需要它来将图像显示在屏幕上,但这是了解正在发生的事情的好方法。 只需简单地将 Base64 编码字符串粘贴到文本框中,然后您可以在下面将其转换为不同的数字基数,例如二进制! 很快你就会明白所有数字的来源。


如何在项目中显示图像

您会发现 MicroPython 和 CircuitPython 的示例代码捆绑在 . 我们的图像编码 Github repo 我们使用 SSD1306 和 SSD1305 屏幕,效果很好,很容易修改为其他屏幕和语言。 如果您知道我们用来编码和解码图像的简单方法,那么代码会更有意义。


它是如何工作的

将图像转换为代码 您的图像被转换为​​字节列表(8 位是 1 或 0)。 第一个字节是图像的宽度,下一个是高度。 然后我们从图像的左上角水平读取第一个 8 像素。 On 为 1 off 为 0,这些构成下一个字节。 接下来的 8 个像素构成下一个字节,我们继续前进,直到到达屏幕的末尾,然后移动到下一行。 我们重复此操作,直到您的图像变成字节列表。 现在我们对字节进行 Base64 编码。 我们将解释这是如何工作的,但您只需要知道字节变成字母。 将代码转换为图像 现在我们反转这个过程,将 Base64 编码的字节列表从字母转换回字节。 然后我们读取图像的宽度和高度,即第一个 2 个字节。 然后我们读取第 3 个字节以获取第 1 个 8 个像素并将它们绘制到我们的图像中,然后抓取下一个字节并重复直到我们的图像被重建。


Base64 编码 - 它是如何工作的?

这个很简单,用了很多。 当您发送电子邮件附件时,它是 Base64 编码的,原因与我们将其用于图像的原因完全相同。 您将字节列表排列成一长串位(0 和 1)。 然后,您以 6 组而不是 8 组(字节)的形式收集这些位。 6 个 0 和 1 有 64 种可能的组合,每个组合都分配了一个字母。 所以每个 6 位组都变成了一个字母。

隐藏内容
你必须登入/注册才可观看隐藏内容
 
 
 
 
 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章