TinEngine使用(7)——图片

引言

一个富文本标记语言,一定不能够缺少载入图片的功能,Tin标记语言也不例外。但是,因为TinEngine基于tkinter开发,受tkinter限制,因此必须要做出一定的说明。

在Tin标记语言中,使用<img>标签来载入图片。

一般标记使用

在Tin中,使用如下方式载入图片:

<img>img_file_name.type_name;[url];[size];[pad]

img_file_name::文件名。相对于 data\img\ 目录下的名称
type_name::后缀名
url::图片链接
size::尺寸
pad::隔空距离

Tin的图片支持能够做到:

  • 载入常用图片
  • 快速,基本不会影响图片原来的样式
  • 可以多种方式播放gif
  • 相应的tins拓展

Tin的图片概念

使用<img>标签需要注意的内容。

载入

在Tin中,载入的图片没有本地图片和网络图片的区别

不论这个图片是否存在,TinEngine会先查找目录 data\img\ 下的图片文件,查看是否有相应名称以及后缀名的图片文件存在。如果图片存在,则直接使用本地图片;否则,将开一个线程下载图片文件,当需要时再载入图片。

下载图片

TinEngine在解析Tin文本标记之前,会先解析所有的<img>标签,判断文件是否存在。最后,TinEngine会列出所有的不存在,也就是需要下载的图片,分别打开一个线程下载除了第一个图片以外的所有图片。

多线程下载图片可以尽可能快得在图片载入之前完成图片下载,同时为了避免载入时图片未下载成功,第一个图片下载会阻塞TinText的渲染功能。

原理如下:

Created with Raphaël 2.2.0 开始解析之前 抽取所有<img>标签行 正则匹配文件、链接参数 抽取不存在的图片 第一个图片 直接下载 多线程下载 yes no

图片尺寸

如果图片的宽度大于TinText宽度,TinEngine会自动将图片等比例缩放为契合TinText宽度的尺寸,TinText对图片高度无限制。

如果图片的宽度允许在TinText完整显示,则TinText将载入图片原尺寸,或者是根据[size]参数载入相应自定义尺寸的图片。


特殊格式

gif在TinText中会特殊载入。

TinText能够播放gif图片,但是可能会失真。因此,TinText的gif显示附带如下的额外功能:

  1. 可以改变gif尺寸,但可能会失真
  2. 点击gif后,可以正常播放原尺寸的gif,色彩不会失真
  3. 使用<clickgif>tins拓展,可以点击播放gif,减少内存占用

结语

虽然TinText的图片显示受tkinter的限制,但是TinText的图片支持已经做得很不错了。

点击播放gif,减少内存占用


结语

虽然TinText的图片显示受tkinter的限制,但是TinText的图片支持已经做得很不错了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值