[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

metrics rmagick problem

Eduard Bondarenko

3/31/2008 4:01:00 PM

I get a strange rmagick result.

I need to add a centered text to image.
Draw#inspect tell me that all is good, but on result image text isn't
centered.

See http://pastie.caboo...
for code and link to result image.

Thanks for any help in advance.
--
Posted via http://www.ruby-....

5 Answers

Tim Hunter

3/31/2008 4:30:00 PM

0

Eduard Bondarenko wrote:
> I get a strange rmagick result.
>
> I need to add a centered text to image.
> Draw#inspect tell me that all is good, but on result image text isn't
> centered.
>
> See http://pastie.caboo...
> for code and link to result image.
>
> Thanks for any help in advance.

You're working too hard :-) Use gravity(Magick::CenterGravity), like the
example for composite_layers:
http://studio.imagemagick.org/RMagick/doc/ilist.html#compos....

--
Posted via http://www.ruby-....

Eduard Bondarenko

3/31/2008 4:55:00 PM

0

Thanks Tim,

But centerGravity don't works as expects.
I've added
d.gravity = Magick::CenterGravity

and changed
d.text(0,0, text)

but the text isn't in the image center.
annotate give the same result.

Best regards,
Eduard

Tim Hunter wrote:
> Eduard Bondarenko wrote:
>> I get a strange rmagick result.
>>
>> I need to add a centered text to image.
>> Draw#inspect tell me that all is good, but on result image text isn't
>> centered.
>>
>> See http://pastie.caboo...
>> for code and link to result image.
>>
>> Thanks for any help in advance.
>
> You're working too hard :-) Use gravity(Magick::CenterGravity), like the
> example for composite_layers:
> http://studio.imagemagick.org/RMagick/doc/ilist.html#compos....

--
Posted via http://www.ruby-....

Tim Hunter

3/31/2008 10:21:00 PM

0

Eduard Bondarenko wrote:
> Thanks Tim,
>
> But centerGravity don't works as expects.
> I've added
> d.gravity = Magick::CenterGravity
>
> and changed
> d.text(0,0, text)
>
> but the text isn't in the image center.
> annotate give the same result.
>

Sorry this is so much trouble.

Try this. For me, this exactly centers the word "RMagick" on the image.
I'm using ImageMagick 6.4.0 and RMagick 2.3.0, but I would expect this
to work with any relatively recent version of ImageMagick and RMagick.
If it doesn't work for you, please open a support request on the RMagick
project on RubyForge, let me know what versions of ImageMagick and
RMagick you're using, include a simple reproduction of your problem and
attach the output image you get.

require 'RMagick'

img = Magick::Image.new(500, 500)

gc = Magick::Draw.new
gc.stroke "red"
gc.fill "white"
gc.circle 249.5, 249.5, 249.5, 255
gc.line 0, 0, 499, 499
gc.line 0, 499, 499, 0
gc.draw img

translucent_blue = Magick::Pixel.from_color "blue"
translucent_blue.opacity = Magick::QuantumRange * 0.50
translucent_blue = translucent_blue.to_color(Magick::AllCompliance,
true)

gc = Magick::Draw.new
gc.gravity Magick::CenterGravity
gc.text_undercolor translucent_blue
gc.pointsize 48
gc.fill "rgba(100%, 100%, 100%, 0.50)"
gc.text 0, 0, "RMagick"
gc.draw img

img.matte = false
img.display

--
RMagick: http://rmagick.ruby...
RMagick 2: http://rmagick.ruby...rmagick2.html

Eduard Bondarenko

4/1/2008 8:36:00 AM

0

ImageMagick 6.4.0 03/28/08 Q16
rmagick (2.3.0)
Rails 2.0.2

I guess I found a problem.
When I change Image.read to Image.new
with the same dimensions text written at the
desired location.

SOLUTION (possible):
image.page was not right.
public/print_images/bc5085fc45bb5697aec6e181e33ebe78.png PNG 535x535
768x768+177+79 DirectClass 16-bit 68kb
width=768, height=768, x=177, y=79
width=535, height=535, x=0, y=0

I assign image.page to new Rectangle.
Is there any better solution?

Thanks a lot Tim!

Tim Hunter wrote:
> Eduard Bondarenko wrote:
>> annotate give the same result.
>>
>
> Sorry this is so much trouble.
>
> Try this. For me, this exactly centers the word "RMagick" on the image.
> I'm using ImageMagick 6.4.0 and RMagick 2.3.0, but I would expect this
> to work with any relatively recent version of ImageMagick and RMagick.
> If it doesn't work for you, please open a support request on the RMagick
> project on RubyForge, let me know what versions of ImageMagick and
> RMagick you're using, include a simple reproduction of your problem and
> attach the output image you get.
>
> require 'RMagick'
>
> img = Magick::Image.new(500, 500)
>
> gc = Magick::Draw.new
> gc.stroke "red"
> gc.fill "white"
> gc.circle 249.5, 249.5, 249.5, 255
> gc.line 0, 0, 499, 499
> gc.line 0, 499, 499, 0
> gc.draw img
>
> translucent_blue = Magick::Pixel.from_color "blue"
> translucent_blue.opacity = Magick::QuantumRange * 0.50
> translucent_blue = translucent_blue.to_color(Magick::AllCompliance,
> true)
>
> gc = Magick::Draw.new
> gc.gravity Magick::CenterGravity
> gc.text_undercolor translucent_blue
> gc.pointsize 48
> gc.fill "rgba(100%, 100%, 100%, 0.50)"
> gc.text 0, 0, "RMagick"
> gc.draw img
>
> img.matte = false
> img.display

--
Posted via http://www.ruby-....

Tim Hunter

4/1/2008 11:22:00 AM

0

Eduard Bondarenko wrote:
> ImageMagick 6.4.0 03/28/08 Q16
> rmagick (2.3.0)
> Rails 2.0.2
>
> I guess I found a problem.
> When I change Image.read to Image.new
> with the same dimensions text written at the
> desired location.
>
> SOLUTION (possible):
> image.page was not right.
> public/print_images/bc5085fc45bb5697aec6e181e33ebe78.png PNG 535x535
> 768x768+177+79 DirectClass 16-bit 68kb
> width=768, height=768, x=177, y=79
> width=535, height=535, x=0, y=0
>
> I assign image.page to new Rectangle.
> Is there any better solution?
>

That's the best solution.

--
RMagick: http://rmagick.ruby...
RMagick 2: http://rmagick.ruby...rmagick2.html