使用 Ruby 即时编码 Base64

Posted

技术标签:

【中文标题】使用 Ruby 即时编码 Base64【英文标题】:Encoding Base64 on the fly with Ruby 【发布时间】:2015-12-10 14:41:27 【问题描述】:

我们的 Rails 项目与邀请模板有关。每张卡片都附有存储在数据库中的 html/CSS。该设计将涉及使用多种字体。为每张卡设置如下并存储在数据库中。

**`@font-face  font-family: 'abadi_mt_condensed_lightRg'; src: url('/assets/abadi_mt_condensed_light_regular-webfont.ttf') format('truetype'), font-weight: normal; font-style: normal; 

----------------------------------- -------------------------------------------

` 我们想使用 wkhtmltoimage/IMGkit 将卡片转换为图像。看起来 Base64 编码最适合这种没有失真的转换(正确吗?)。当涉及大量卡片时,在数据库中以 Base64 格式存储将是一件巨大而乏味的事情。我们希望在发出请求时即时使用如下 Ruby 方法。

`Base64.encode64(file.open('/assets/abadi_mt_condensed_light_regular-webfont.ttf')  |io| io.read )`
------------------------------------------------------------------------

如何做到这一点?任何建议都非常感谢。

【问题讨论】:

【参考方案1】:

相信这应该可以满足您的需求:

ActiveSupport::Base64.encode64(open('/assets/abadi_mt_condensed_light_regular-webfont.ttf')  |io| io.read )

【讨论】:

感谢您的回复。然而,我的问题与当卡片作为图像被提取时如何即时执行此转换有关。

以上是关于使用 Ruby 即时编码 Base64的主要内容,如果未能解决你的问题,请参考以下文章

Base64 编码的字符串到文件(Ruby on Rails) - 未定义的方法“解包”错误

编码 64、Ruby 和 Mandrill API

将base64编码的Textmate片段过滤回文本

来自GrayScale的Ruby + RMagick + base64图像+ RGB转换不起作用

ruby 使用Base64和StringIO对PDF图像进行处理

ruby 类库组成