在 aardio 中显示图片

显示图片的控件

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

image-20221015101617816

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

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

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

使用 IO 库

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

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

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

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

image-20221015110203125

然后我们开始先在 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();

image-20221015110554631

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

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

image-20221015110716803

image-20221015110724789

更多参数可以在这里调节

image-20221015110800692

原文地址:http://www.cnblogs.com/BEMAKE/p/16793821.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性