Forum: Ruby on Rails RMagick Image text question

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Sub Z. (Guest)
on 2008-10-29 11:27
Attachment: Image_text.png (0 Bytes)
Hi there!
I'm studying RMagick graphics manipulation gem, and I need to put small
text about size 8 to 11 px on pictures. I found that text() method
prints quite blurred text. And I could not get clear text chosing
different values for methods font, font_family, font_style, font_weigth.

I attached a picture. In the left of it you can see what RMagick
generates for me and in the right you can see the example of clear text
I need RMagick to generate for me.

What can I do to get clear text. Any ideas?
Sub Z. (Guest)
on 2008-10-29 11:44
Zhan Tuaev wrote:
> Hi there!
> I'm studying RMagick graphics manipulation gem, and I need to put small
> text about size 8 to 11 px on pictures. I found that text() method
> prints quite blurred text. And I could not get clear text chosing
> different values for methods font, font_family, font_style, font_weigth.
>
> I attached a picture. In the left of it you can see what RMagick
> generates for me and in the right you can see the example of clear text
> I need RMagick to generate for me.
>
> What can I do to get clear text. Any ideas?

Here is my code:

 gc.stroke_width(1)
 gc.pointsize(10)
 gc.stroke('black')
 gc.font_style(Magick::NormalStyle)
 gc.font_weight(Magick::LighterWeight)
 gc.text(x,y, "12:00")
Jim (Guest)
on 2008-10-29 16:58
(Received via mailing list)
In my text drawing, I set stroke to transparent and fill to the
desired text color.  Also, you could try turning off antialiasing.  I
ended up using anti-aliasing, but rendering the text at double size
and scaling down for acceptable results.
Sub Z. (Guest)
on 2008-10-29 17:13
Attachment: fill_only.png (0 Bytes)
Jim wrote:
> In my text drawing, I set stroke to transparent and fill to the
> desired text color.  Also, you could try turning off antialiasing.  I
> ended up using anti-aliasing, but rendering the text at double size
> and scaling down for acceptable results.

Hi, Jim!
how can I turn off anti-aliasing?



I tried to call / not to call methods fill() and stroke().
result is different in all cases:

gc.fill('black') #results in:
Sub Z. (Guest)
on 2008-10-29 17:15
Attachment: stroke_only.png (0 Bytes)
> I tried to call / not to call methods fill() and stroke().
> result is different in all cases:
>
> gc.fill('black') #results in:

#gc.fill('black') # call is commented out
gc.stroke('black') # results in:
Sub Z. (Guest)
on 2008-10-29 17:16
Attachment: stroke___fill.png (0 Bytes)
Zhoran T. wrote:
>> I tried to call / not to call methods fill() and stroke().
>> result is different in all cases:
>>
>> gc.fill('black') #results in:
>
> #gc.fill('black') # call is commented out
> gc.stroke('black') # results in:

gc.fill('black')
gc.stroke('black') # calling both results in:
Sub Z. (Guest)
on 2008-10-29 17:21
Attachment: needed.png (0 Bytes)
Zhoran T. wrote:
> Zhoran T. wrote:
>>> I tried to call / not to call methods fill() and stroke().
>>> result is different in all cases:
>>>
>>> gc.fill('black') #results in:
>>
>> #gc.fill('black') # call is commented out
>> gc.stroke('black') # results in:
>
> gc.fill('black')
> gc.stroke('black') # calling both results in:


√ź¬°omparing these three pictures you can see, that calling both methods
stroke() and fill() makes best picture, but I still need better.
Something like at attached picture (I used pixel editor :) to prepare
it)

And It seems to me that scaling down could not make accurate symbols.
Jim (Guest)
on 2008-10-29 18:33
(Received via mailing list)
I would have something like:

gc.stroke('transparent').stroke_antialias(false)
gc.fill('black')

The stroke_width setting won't have any effect on the text.  I also
never saw any variation from using the font_style or font_weight
settings.  I'm not sure if turning off antialiasing has any effect on
text, since I now have that commented out in my code.  I still turn
off antialiasing when drawing lines because I only draw rectangles.
On an angled line you might need it.

The font you choose may also have something to do with it.  Run

convert -list font

at the command line to see the available fonts and families on your
system.


Jim Crate
Que Viva Development
Sub Z. (Guest)
on 2008-10-30 16:23
Attachment: 1.png (0 Bytes)
Jim wrote:
> I would have something like:
>
> gc.stroke('transparent').stroke_antialias(false)
> gc.fill('black')
>
> The stroke_width setting won't have any effect on the text.  I also
> never saw any variation from using the font_style or font_weight
> settings.  I'm not sure if turning off antialiasing has any effect on
> text, since I now have that commented out in my code.  I still turn
> off antialiasing when drawing lines because I only draw rectangles.
> On an angled line you might need it.
>
> The font you choose may also have something to do with it.  Run
>
> convert -list font
>
> at the command line to see the available fonts and families on your
> system.
>
>
> Jim Crate
> Que Viva Development


Hi, Jim!
It really works!! I just turned off antialiasing and got it!!!
Please take a look at the pictures. That is what I needed.
Thank you for your help!
Sub Z. (Guest)
on 2008-10-30 16:24
Attachment: 2.png (0 Bytes)
Good luck, Jim ;)
Sub Z. (Guest)
on 2008-10-30 17:49
Zhoran T. wrote:
> Hi, Jim!
> It really works!! I just turned off antialiasing and got it!!!
> Please take a look at the pictures. That is what I needed.
> Thank you for your help!

One note more.
I've checked again and found that result defends on both callings
 @gc.stroke('transparent').stroke_antialias(false)
 @gc.text_antialias = false

the best result (which I showed upper) produced by calling both methods.
Jim (Guest)
on 2008-10-30 19:58
(Received via mailing list)
hmm...I never noticed the text_antialias method before.  I'll have to
remember that the next time I run into issues.

Glad I could help!

Jim
James D. (Guest)
on 2015-11-02 07:21
You can use this article on Image Manipulation to clear your query. This
article may prove to be of your help.

http://www.railscarma.com/blog/technical-articles/...
This topic is locked and can not be replied to.