Ruby (求助) Mac 下使用 ImageMagick 出现中文乱码的情况。

tianchaos · 2014年03月03日 · 最后由 zhangyuan 回复于 2014年03月04日 · 5659 次阅读

我使用的 Ruby 接口是 QuickMagick。 不论怎么修改字体,出现的中文的都一直都是乱码,图片如下。

由于 Ruby 的原因,源文件是 UTF-8 的编码格式,字体是冬青体,代码如下:

require 'quick_magick'

image = QuickMagick::Image::solid(400,200)
image.pointsize = 40 
image.draw_text(100, 100,'测试中文你好世界!!!') 
image.font = File.expand_path("./fonts/Hiragino Sans GB W3.otf", __FILE__)
image.save("foo.jpg")

纠结了好多天了,求大神答疑解惑。必当感激不已。

#1 楼 @dddd1919 谢谢,我试一下。话说之前是有见人用 Quickmagick 实现过中文文字到图片的 Gem,可是我这里就一直是乱码。

还真没遇到过这个问题,为什么选择 quickmagick呢?或者在文件头加上 # encoding=UTF-8可以不?

@dddd1919

加上# encoding=UTF-8没有任何变化。

我看到一个叫txt2imgGem用的quickmagick。又在ImageMagick的官网上面看到quickmagick,文档很简单,很容易看懂,加上不知道从哪里听说Rmagick会有内存泄露的问题,所以就用的这个,只是随便选了一个而已,也没有多想。

我用Rmagick实现一个试一下。

是不是设置字体那一行代码,得放在 draw_text 之前?

#4 楼 @tianchaos 试过就知道,另外也有可能和 ruby 版本有关系,2.0 很少出这个问题

@zhangyuan 不是,因为前后我都试过。

换个字体试试,如果正常则说明字体问题

可能需要安装字体,并且在用 ImageMagick 时指定这个安装的字体!

看了一下源码,quick_magick 和 mini_magick 类似,都是调用命令行来处理图片的。

建议用 bundle open quick_magick 打开源码,然后找到执行命令的代码(应该就是 save 方法),把处理图片的命令打印出来。然后在终端执行看看。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号