引言
一个富文本标记语言,一定不能够缺少载入图片的功能,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的渲染功能。
原理如下:
图片尺寸
如果图片的宽度大于TinText宽度,TinEngine会自动将图片等比例缩放为契合TinText宽度的尺寸,TinText对图片高度无限制。
如果图片的宽度允许在TinText完整显示,则TinText将载入图片原尺寸,或者是根据[size]
参数载入相应自定义尺寸的图片。
特殊格式
gif在TinText中会特殊载入。
TinText能够播放gif图片,但是可能会失真。因此,TinText的gif显示附带如下的额外功能:
- 可以改变gif尺寸,但可能会失真
- 点击gif后,可以正常播放原尺寸的gif,色彩不会失真
- 使用
<clickgif>
的tins拓展,可以点击播放gif,减少内存占用
结语
虽然TinText的图片显示受tkinter的限制,但是TinText的图片支持已经做得很不错了。
点击播放gif,减少内存占用
结语
虽然TinText的图片显示受tkinter的限制,但是TinText的图片支持已经做得很不错了。