将base64格式的字体信息解码成可用的字体文件

收到了SegmentFault的一封私信:https://segmentfault.com/annual-report-2016#/start

这里写图片描述

好奇检查了一下这是什么字体:

这里写图片描述

。。好吧我确定没有这个字体,那就是自定义的字体了。

检查了HTTP请求,有这么一个请求:

这里写图片描述

虽然请求的都是字体文件但是第一个明显更清新脱俗一些,他是base64编码的,data:font/opentype;base64,T1RUTwAJAIAAAwAQQ0ZGIBcEq......过长不展示

查了一下如何将其转为可用的字体文件:

参考:http://stackoverflow.com/questions/6920832/how-to-decode-base64-encoded-font-information/20184975#20184975

好吧 我再复述一下过程:
1. 获取到base64字符串并删除头部信息,在这里就是data:font/opentype;base64, 逗号也要删除,这样就获取到了字体信息。 比如:T1RUTwAJAIAAAwAQQ0ZGIBcEq......过长不展示
2. 访问http://www.motobit.com/util/base64-decoder-encoder.asp 这个网站,将纯字体信息字符串粘贴进编辑区域,然后下方解码选项选择解码base64字符串 和导出为二进制文件,即:
这里写图片描述
3. 点击转换数据,这样就下载下来一个base64.bin的二进制文件,然后用编辑工具打开,在前面会发现一些字体格式的关键字,比如ttf,woff,otf…我的关键字是这样的:这里写图片描述
我就默认设置为otf格式的了。。
4.然后将base64.bin 问价改名为 pixelEn.otf, 文件名随意。

到此完成,我们可以试试字体效果怎么样,建议一个html文件:

<!DOCTYPE html>
<html>

<head>
    <title></title>
    <style type="text/css">
        @font-face {
            font-family: "pixelEn";
            src: url("pixelEn.otf");
        }

        p {
            font-family: "pixelEn";
            font-size: 24px;
        }
    </style>
</head>

<body>
    <p>This is pixelEn.otf</p>
</body>

</html>

效果:
这里写图片描述

这个网站请求了2个字体文件,我们使用的是英文字符的”像素化”字体,上图中第二个就是中文”像素化”的字体文件,有兴趣可以下载下来使用。

注意:中文字符应用了pixelEn会出现乱码现象,所以应该针对不同的字符应用相应的字体。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据提供的引用内容,可以看出Python后端已经将录音文件base64编码格式传输给了Java后端,而Java后端需要将其解码MP3文件。因此,我们需要先将base64编码文件解码二进制数据,然后再将其wav文件。下面是一个可能的实现方法: 1. 首先,我们需要将base64编码的字符串二进制数据。可以使用Java内置的Base64类来完这个任务。具体代码如下: ``` byte[] decodedBytes = Base64.getDecoder().decode(base64String); ``` 其中,`base64String`是Python后端传输过来的base64编码的字符串。 2. 接下来,我们需要将二进制数据写入到一个wav文件中。可以使用Java内置的AudioSystem类来完这个任务。具体代码如下: ``` AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new ByteArrayInputStream(decodedBytes)); AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, new File("output.wav")); ``` 其中,`decodedBytes`是上一步解码得到的二进制数据,`output.wav`是输出的wav文件名。 综上所述,我们可以将Python传输过来的base64文件解码wav文件,具体实现方法如下: ``` // 将base64编码的字符串解码二进制数据 byte[] decodedBytes = Base64.getDecoder().decode(base64String); // 将二进制数据写入到wav文件中 AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new ByteArrayInputStream(decodedBytes)); AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, new File("output.wav")); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值