在 aardio 中显示图片


文章目录

  • 在 aardio 中显示图片
  • 显示图片的控件
  • 使用 IO 库
  • 在 aardio 中使用 plus


显示图片的控件

在 aardio 中我们显示图片也有对应的控件,这个空间就是高级 plus

python 展示图片链接 html_控件

注意请不要使用旁边的普通图像控件,因为右边的高级图像控件实质上就是左边的上位替代,这个以后我会单独新开一期教程讲讲 aardio 中的界面控件,但是现在不是时间,这个视频主要还是围绕 python 与 aardio 之间的强联动

我们点开他们,然后这个 plus 有一个属性叫 background 通过这个我们就可以很方便的修改图片上去了,但是这个输入的图片有比较苛刻的要求,这个图片不能是一个路径,而必须是字节数组 byte,如果对这个没有了解的同学我可以给大家做一个简单的介绍

字节数组就是我们常说的二进制序列,你可以理解为很多 0和1,然后计算器上任何资源都由这些0 和 1组成,我们在数据传输的时候也会使用字节数组进行传输,而不是直接传输一个字符串,详情可以见《计算机网络结构》

使用 IO 库

大家平时都经常再用的 with open 其实就是 io 库,io 库就是用来操作文件的库, 但是这里面有两个比较特殊的,这两个不是向磁盘写入数据,而是向内存写入数据,这样的方式适合我们短时间就释放的资源,这两个指令分别是 StringIOBytesIO

当然我们不会两个都讲,我们这里只讲 BytesIO

这个方法可以让我们将一个文件读取到内存中,然后我们就可以像从磁盘打开文件一样正常打开它,但是好处是我们使用之后这个存在内存里面的文件就会消失

我们直接开始一个演示,首先需要准备好一张图片

python 展示图片链接 html_控件_02

然后我们开始先在 python 里面写代码,目标是读取到这张图片的比特信息

import io
def get_img():
    # 使用 with 方法打开,注意这里使用的 rb
    with open("./1.jpg",'rb') as f:
        # 创建一个 BytesIO 方法
        img = io.BytesIO()
        # 将文件内容写入到 BytesIO 中
        img.write(f.read()) 
        #  使用 getvalue 方法获取到值
        print(img.getvalue())
    return img.getvalue()

这样我们就获取到了我们的二进制内容

在 aardio 中使用 plus

然后我们再前往 aardio 中进行修改,想要修改背景图可以通过两个办法 setBackground 和普通的 background ,区别在于第一个可以传入一个参数,询问是否提前缓存图片

注意这里需要使用 parseValue() 如果不使用就没有办法正常出图

py3.exec(code);
	var img = py3.main.get_img()
	//mainForm.plus.setBackground(img.parseValue(),false) 两种方法都可以
	mainForm.plus.background = img.parseValue();

python 展示图片链接 html_python 展示图片链接 html_03

可以看到我们的图片正常输出在我们的界面上了

但是我们现在的图像有点扭曲,我们可以通过背景模式进行修改

python 展示图片链接 html_python 展示图片链接 html_04

python 展示图片链接 html_显示图片_05

更多参数可以在这里调节

python 展示图片链接 html_python_06