最近在找资料弄到 Kindle 上,因为 Kindel 不支持 equp 格式,所以要把 equp 转为 mobi 的。
在这个过程中我注意到有一些转变文件类型格式的软件,例如说 convertio 。这时我突然发现这一块是我的知识盲区,我不太明白这个转变过程是如何实现的。用 bing 等查了一圈还是不得其解,所以就来论坛发帖求问了。
大概明白这是通过改变文件的编码实现的,但是这个过程是怎么实现的?如何保证这一过程中信息不会遗失?
问题比较小白咳咳,但是真的不懂,求问。
1
wzzzx 2020-10-02 23:20:31 +08:00 1
每种文件都有自己的存储格式,如果你知道 A 文件和 B 文件的存储格式,相互转换不就是分分钟的事了么。如果是纯小白的话,可以简单理解为华氏度和摄氏度的相互转换,实际上并没有那么一个固定的公式罢了~
|
2
chihiro2014 2020-10-02 23:28:19 +08:00
以某种转换方式,从 A 类变成 B 类,符合类型即可
|
3
imdong 2020-10-02 23:59:14 +08:00
我也不懂,但是我能猜到原理大概应该是这样,就以富文本内容举例吧。
富文本比较常见的是 word 相关的格式 如 doc docx,另一个就是 html 吧。 以 html 举例,我们用到了大量的标记来记录一段内容的样式,对于字体大小,颜色,间距等。 那么 doc 之类的其他也是有类似的格式来记录的,只是可能不用 xml 结构, 而如果你需要做一个格式转换的话,你需要同时能解析两边的记录结构格式啥的。 A 格式 解析为 自己的结构,然后再重新按照 B 的格式 生成文件。 比如,凭空假设。 html:<p style="font-size: 14px;">你好,我是<b>张三</b>。</p> adoc:%paragraph:$font-size=14px$你好%,我是%bold:张三%。% 你的程序理解这个结构后,只要知道这段是 14px 的字,张三是加粗的就好了。 当然,实际情况应该比这个更复杂,比如图片应该是以 三原色的数值排序来做,而格式差异在压缩处理上。 比如相同的颜色,出现的比较多的,应该会有 map,每个格式的 map 逻辑不同。 而视频内容的压缩,又会涉及到帧与帧之间的处理逻辑了。 但是整体思路应该是一样的。 以上是我的猜想,如有不对,欢迎楼下大佬指正。 |
4
DoctorCat 2020-10-03 01:11:11 +08:00
1.特定格式的文件是按照一定规则结构组织一起的,虽然很多文件肉眼都不可读
2.需要知道该文件构成的规则或定义 3.通过代码实现转换功能 这就好比打铁工匠,把烧红的铁棍棍打成了刀子。你问刀子怎么来的?当然是利用一定的工艺,把铁块转重组为刀子了 |
5
KennyMcCormick 2020-10-03 10:29:06 +08:00 via iPhone
这个错别字。
我瞎了…… |