专栏/简单火箭2 Label图片转换教程

简单火箭2 Label图片转换教程

2022年06月17日 16:31--浏览 · --喜欢 · --评论
粉丝:977文章:7

在MFD图片导入之后,绝大部分的图片导入问题都可以得到解决。

但是,对于曲面的图片导入以及部分透明的图片导入,MFD仍然是鞭长莫及。

这时候,原版图片导入的最后手段,Label图片导入登场了。

Label就是文字标签,具有弯曲等能力,能够显示文本。

Label文字标签

Label图片导入,使用的是一种被称为富文本的文字显示方式。简而言之,富文本可以在文字显示中以类似html标签的方式插入标签来定义文字的一些显示方式。比如<br>换行,<color>控制颜色,<size>控制字体大小,<s>删除线,<i>斜体,<u>下划线,<b>粗体等。

通过<line-height>控制行间距,<size>控制字体大小,<color>控制颜色,再结合简火2Label的一个奇妙特性——使用<color>标记了颜色的字体,在使用渐变的时候,会变成一个长方块,而字符o的方块是正方形,我们就可以通过列举像素的方式显示图片。

基础富文本图片显示理论测试

另外,在简火2中,2个半角空格的左右宽度度恰好等于同大小的一个字母的左右宽度,而空格是透明的,这样就可以显示透明部分。

结合<br>换行,可以实现定宽度显示一定像素。

把对齐模式设置为上对齐,左对齐的情况下,就是常规的图片扫描方式。

通过Label自带的弯曲,可以实现曲面图片。

如此,例如<line-height=0.6><size=1><color=#FF0000>ooo    oo</color>这样的富文本,就可以显示基本的像素。

需要注意的是,在简火2中,<color>的颜色16进制值不是RGB值,而是在色格中的颜色序号,如下图所示:

颜色16进制表示的颜色

接下来就可以进行图片显示了。

<line-height=0.6><color=#010101>o</color><color=#010101>  </color><color=#010101>o</color><color=#010101>o</color><br><color=#010101>o</color><color=#010101>o</color><color=#010101>o</color><color=#010101>o</color>

同样的原理,我们可以把更多像素输入进去。不过当然,这样的工作不可能再由人来完成,我们需要程序。

经过我一段时间的研制,这样的程序被我写出来了。

程序概览

放心, 我在这是不会教你怎么写出这样的程序的。你只需要知道,这样一个小小的程序就可以完成所有任务

所以,接下来来说说看这个程序怎么用吧。

程序的下载链接在本文最末尾。我在此声明一下,本程序没有夹带任何病毒文件或者恶意程序,如果你对我有怀疑,那么你大可不用。


首先,这个程序使用.NET6运行库。这是许多游戏必备的运行库,如果你电脑上面没有,可以从微软的官网下载,链接在接下来的程序压缩包解包后的使用说明中。

然后,我们还是需要图片转换网站,比如之前MFD图片导入使用的www.boxentriq.com/code-breaking/pixel-values-extractor

在进行图片转换之前,有几件事需要你自己在ps或者其他图片处理软件里面处理一下图片

第一,你需要把图片进行高度锐化,保证放大了看两个颜色之间没有任何过渡颜色,否则后果很严重。上面说了,简火的<color>指向颜色格,我猜你也不想对着转换出的上千种颜色不知所措吧,

第二,你需要把透明色涂成一个颜色并记住它的RGB颜色值。当然,不要忘记锐化。

图片锐化前的局部


图片锐化后的局部

之后进行图片转换,模式RGB

在完成图片转换后,我们的步骤不一样了:

首先,把转换出的RGB数组全部整个复制到一个txt文件里面


复制成这样一个txt文件

然后保存在(一个你能找得着的位置)电脑里面。

之后,按照上面的那个程序界面中的提示输入你图片的参数。在透明色中输入你的透明颜色的16进制RGB颜色值,如果没有透明色,写x即可

对于数据的确认可以看下面的那行小字。一切数据以那行字为准。

不要往空里面瞎填东西,瞎填的人是不会有好下场的口亨!

数据填入


填好之后,点击加载文件,选择存储着你的图片数据的你刚刚存好的txt文件。

转换可能需要一点时间。

在转换完成后会有提示,这时候点击亮起的保存文件按钮,然后保存就可以了。


转换完成


打开你保存的文件,按照里面的提示进行对Label的处理。

如果你真的很闲,往空里面乱填东西或者乱加载东西,那么不好意思,你会看到红字的大大的提示。为什么非要考验报错处理程序和条件判断程序的能力呢……

为了避免你不看提示,我把提示复制在这里:

……使用方法:以下第一栏是各颜色的56位RGB颜色值,第二栏则是实际输入Label中的数据。其中,最开头的<line-height=>中的数据是行间距,<size=>中的数据是每一个像素的大小,这6个数据是可以设置的,并且也应当在生成时按照输入框中的输入进行了设置。将实际数据输入Label后,请将飞行器的颜色的对应颜色设置完成。注意,第一个颜色序号是0,第二个是5,以此类推。如果需要更改颜色,请用查找替换功能将全部序号对应替换。在输入数据至Label后,请将Label的渐变(Gradient)一项设置为不为None的选项比如Lower Right,并把字体(Font)设置为Default。如果出现像素错位或者图片部分缺少,请确保Label的宽度和高度足够。可以调整Label的曲率。注意防范图片过大造成的电脑卡顿。感谢使用!

没啥好说的了,已经说得很全了。

需要注意的是,Label是有可显示字符数限制的(大概1w5k左右)。超过的部分会变成黑色或者说透明色。如果你的图片太大了,可以分成几个Label.

以上的处理均可以在简单的文本编辑器如vs code中完成。

在完成一切处理后,将第二栏的文本复制进Label,回车,就可以看到图片了。


图片显示测试

透明色测试

不要忘记了,按照第一栏(或者你自己查找替换的序号)设置飞行器的颜色。

Label图片导入的教程,就是这样

这里说一下,这个Label图片导入是作为图片导入的原版无mod最后的方案,因为相比MFD,Label对性能的消耗还是很大的。初步测试表明,每20~50个像素造成的运算压力和1个零件(1p)相当。所以,再考虑Label的可显示字符数显示,不是很建议用此法显示高分辨率图片,同时由于是位图原因而且没有过渡,故不建议将此法用于需要明显显示的大幅图片上,像素的效果还是不算很好看的。此法主要适用于部分透明或者曲面图片的显示。

一些关于Label图片显示的其他小技巧:

  1. 输入的文本用查找替换可以方便地改变颜色序号

  2. 空格是透明色,所以你转换出的文件出现很多空格时不要惊慌

  3. 在图片曲面显示的时候,正视会看到图片的宽度像被减小了意义变成瘦长的样子,这是近大远小导致的。可以通过改变Label的partscale的每一项(在xml中)对此进行调整。图片的长宽的便捷调整也是通过partScale即可。

那么,最后 我把程序的链接附在这里。

百度网盘

链接:https://pan.baidu.com/s/1MD5o3H8UMNtUfj8CjSXsnQ 

提取码:s7sk

欢迎大家使用!

如果有帮助的话,也不妨点个三连和关注吧!


投诉或建议