首页 > 编程语言 >aardio 调用 python将图片放上界面

aardio 调用 python将图片放上界面

时间:2022-10-15 11:56:50浏览次数:67  
标签:控件 界面 img python aardio plus 我们 图片

在 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

标签:控件,界面,img,python,aardio,plus,我们,图片
From: https://www.cnblogs.com/BEMAKE/p/16793821.html

相关文章

  • FreeBSD下开发Python插件并使用nuitka打包
    承接前面的文章https://www.cnblogs.com/passedbylove/p/16759512.htmlhttps://www.cnblogs.com/passedbylove/p/16756063.html自定义Python插件的setup.pyfromdistu......
  • [oeasy]python0007-Guido的简历
    Guido的简历......
  • [oeasy]python0007-Guido的简历
    ​ 执行esc退回到正常模式​编辑esc退出插入模式准备底行命令模式运行当前py文件保存执行​:w|!python3%​保存并用python3解释当前程序(%)​......
  • # yyds干货盘点 #怎么把这两行Python代码写成一行代码?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【刘苏秦......
  • Python 图片亮度检测和调节
    项目上遇到一个问题,图片上的物体识别度较差,尤其是在晚上的图片,画面模糊不清晰,则需要对太暗的图片需要单独提高画面亮度。解法分2步:先检测画面亮度,然后调节画面亮度与对比度......
  • Python|conda重置环境
    前言一般情况下,个人在condabase环境下进行编码,有时新装的包乱了、或者错误的更新,欲重置回滚。或者是本地环境的包太多太杂了,需要回滚到初始状态。解决方案condalist-......
  • 怎么把这两行Python代码写成一行代码?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【刘苏秦】问了一个Python的问题,提问截图如下:想法还是非常好的。二、实现过程这里【dcpeng】给了一个代码,不......
  • 2022-08-12-esp32把玩记-②_用Micropython点ssd1306_oled屏幕
    layout:postcid:8title:esp32把玩记-②用Micropython点ssd1306oled屏幕slug:8date:2022/08/1215:12:39updated:2022/08/1215:12:39status:publishautho......
  • 实用:python中命令调度分发器
    '''要求:程序员可以方便的注册函数到某个命令,用户输入命令时,路由到注册的函数,如果没有此命令,执行默认函数,用户输入input分析:输入命令映射到一个函数,并执行这个函数,应该c......
  • Python实验报告——第6章 函数
    实验报告【实验目的】 1.掌握如何创建并调用一个函数,以及如何进行参数传递和指定函数的返回值等。2.掌握变量的作用域和匿名函数。【实验条件】1.PC机或者远程编程......