我想推迟我的网站上的字体加载,灵感来自粉碎杂志的延迟字体加载逻辑。
主要部分是将字体转换为base 64并准备您的CSS文件。到目前为止我的步骤:
Open Sans Bold 的 CSS 代码段:
@font-face {
font-family: 'Open Sans';
src: url(data:application/x-font-woff;charset=utf-8;base64,<base64_encoded>) format('woff');
font-weight: 700;
font-style: normal;
}
特别是注意重音和绝对可怕的字母a
。其他字体系列和变体看起来也非常明显不同(大小和形状扭曲等)。
所以问题是:你如何正确地将来自Google网页字体(或其他来源)的TTF文件编码为base64格式,并以结果与原始文件相同的方式使用它?
使用此代码片段直接在浏览器中对您的字体进行Base64编码(独立于操作系统,无需安装任何东西)
function base64convert (files) {
console.clear()
const reader = new FileReader()
reader.onload = (e) => {
console.log(e.target.result)
}
reader.readAsDataURL(files[0])
}
<input type="file" onchange="base64convert(this.files)">
在字体松鼠专家选项中,确保将“TrueType提示”选项设置为“保持现有”。其他任何一个选项都会导致TrueType指令(提示)被修改,从而影响字体的呈现。
或者,如果您对直接从GWF渲染字体感到满意,则可以自己获取该文件并进行base64编码。在 OS X 或 Linux 中,使用终端/外壳中的内置 base64 命令:
$ base64 myfont.ttf
对于Windows,您需要下载一个程序以base64编码(有几种免费/开源工具可用)。复制该文件的内容,然后在CSS中使用:
@font-face {
font-family: 'myfont';
src: url(data:font/truetype;charset=utf-8;base64,<<copied base64 string>>) format('truetype');
font-weight: normal;
font-style: normal;
}
(请注意,您可能需要对各种@font-face信息进行一些调整,以匹配特定的字体数据;这只是一个示例模板。)
问题内容: 我想使用Express 3 呈现原始页面,如下所示: 这是我配置服务器以呈现原始HTML页面的方式(此过时的问题启发了这一点): 不幸的是,使用此配置,页面将挂起并且永远无法正确呈现。我做错了什么?如何在没有精美的渲染引擎(如Jade和EJS)的情况下使用Express3渲染原始HTLM? 问题答案: 如果您实际上不需要将数据注入模板,则express中最简单的解决方案是使用静态文件服
我正在收听现场电话,并能够获得原始的PCM字节。我还可以通过java的音频api来收听这些字节。这些都在一个小程序上工作。 现在,我希望能够将电话呼叫的原始PCM字节转换为WAV字节,以便直接将其写入ServletOutputStream。这将允许浏览器实际监听电话。 有人知道我如何能够将一些原始PCM字节[]转换为WAV字节[]吗? 我看到的例子都与将一个文件转换为另一个文件有关。 java p
问题内容: 我需要将base64编码字符串转换为ArrayBuffer。base64字符串是用户输入的字符串,它们将通过电子邮件进行复制和粘贴,因此在加载页面时它们不存在。我想在javascript中做到这一点,如果可能的话,不向服务器进行ajax调用。 这看起来不错,但我不知道如何使用代码。 有没有简单的方法(也许是本地方法)进行转换?谢谢 问题答案: 尝试这个:
问题内容: 我将 图片获取 为base64字符串( ) ,下面是将转换为图片的函数, 现在,如果图像为png,则png库将创建图像,而jpg库将引发错误,反之亦然。 问题是当我上传png时效果很好,但是当我 上传jpg文件时 返回此错误 无效的JPEG格式:缺少SOI标记 输入为: 这可能有帮助 问题答案: 您将您的传递给,这开始消耗阅读器,只是发现输入不是有效的PNG,因此返回错误。 然后,将部
有一种方法可以将输入流转换为字符串,并将其编码为base64,对吗? 在我的函数中,我得到了InputStream参数,需要将其插入到Oracle数据库表的BLOB字段中。 有办法做到吗? (我的数据库对象包含用于保存图像的字符串字段,但我找不到任何方法将InputStream转换为base 64格式的字符串。)
Im能够将转换为base64。但现在我正在尝试将其转换回并存储在中 编辑%1;首先感谢大家,我已经尝试了以下所有的解决方案,它们都起作用了。但是我有多个图像,如果中没有图像怎么办?