我正在开发一款可以从用户那里生成数字卡的应用程序。目前我正在处理 .rb 文件中的 rmagick 代码。然后只需从命令行运行它,直到我弄清楚。我遇到了一些问题。
- 源图像我不知道它的路径。让它工作的唯一方法是将它与 cards.rb 文件一起放在 Controller 目录中。我想把它放在 assets/cards/
- 正在保存文件,问题同上。我想保存在assets/cards/@card_id.png
- 我尝试在 assets/fonts/目录中使用自定义字体 我尝试过 self.font = “#{RAILS_ROOT}/assets/fonts/dreamorphansbd.ttf” 但代码无法运行。如果我删除引号,它会运行,但字体不正确。
- 我还没有尝试的最后一件事是将标题添加为来自数据库的 card.event。我认为它会沿着这些路线发展,但不确定。
需要'RMagick'
include Magick
blank = Magick::Image.read("Blank-Card.png").first
text = Image.read("caption:Some big long text would go here.") do
self.gravity = CenterGravity
self.font = #{RAILS_ROOT}/app/assets/fonts/dreamorphansbd.ttf
self.background_color= "Transparent"
self.size = "638x"
self.pointsize = 40
end
blank.composite!(text[0], CenterGravity, Magick::OverCompositeOp)
blank.write("card.png")
最佳答案
- 尝试:Magick::Image.read(Rails.root.join('image', 'Blank-Card.png')).first
- 尝试:blank.write(Rails.root.join('image', 'card.png'))
- 使用:Magick.fonts,你会看到所有可用的字体
- 尝试:Image.read("caption:#{obj_active_record.your_attribute}")
关于ruby-on-rails - Assets 、rmagick 和 rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967103/