def generate_button(text)
str = reverse(text)
base_path = File.join(File.dirname(__FILE__),'/../assets/')
canvas = Magick::Image.read(base_path+'button_bg.png').first
text = Magick::Draw.new
text.encoding = 'utf-8'
text.font = base_path+'goldfingerbold.ttf'
text.pointsize = 14
text.gravity = Magick::EastGravity
text.annotate(canvas, 0,0,10,-13, str) {
self.fill = 'white'
}
text.annotate(canvas, 0,0,10,12, str) {
self.fill = 'white'
}
canvas.format = 'PNG'
return canvas
end
Naturally, button and font assets may vary depending on your needs.
The main principle is to reverse the Hebrew string (and then un-reverse alpha-numeric characters) and use Magick::EastGravity to align text from right to left.
Also, if you can use a relatively recent version of ImageMagick (6.5) i recommend it. Using the above with ImageMagick 6.3 produces slightly worse results (font is rendered less clearly).
Hope this helps
Zohar