2017-01-27 7 views
1
def change_image_labels(feed_data) 
for data in feed_data 
    img = Image::read(@tmpdir_file_path+"/#{data[0]}.png").first.resize(600,600) 
redback = Image::read("#{Rails.root}/tmp/redback.png")[0] 
txt = Magick::Draw.new 
redback.annotate(txt,0,0,0,0,data[2]){ 
    txt.gravity = Magick::WestGravity 
    txt.pointsize = 50 
    txt.fill = "#ffffff" 
    txt.font_family = 'helvetica' 
    txt.font_weight = Magick::BoldWeight 
} 
img = img.composite(redback, 0, 30, AtopCompositeOp) 
img.write(@tmpdir_file_path+"/#{data[0]}.png") 
end 
end 

여기에 텍스트가있는 배경을 가진 이미지에 주석을 추가하려고합니다.Ruby rmagick : 텍스트를 더 굵게 만드는 방법은 무엇입니까?

Here `redback.annotate(txt,0,0,0,0,data[2]` `data[2]` refers to the text which contains data like 92% OFF. I want to make it bold. 

아래 images-

실제 결과 -

enter image description here

원하는 결과 (대담)을 참조하십시오 -

enter image description here

두 번째 이미지에는 더 굵은 텍스트가 포함되어 있습니다.

도와주세요.

+0

첫 번째 이미지의 글꼴 ("실제 결과")은 굵은 글꼴 일뿐만 아니라 확실히 Helvetica가 아닙니다. – Stefan

답변

2

헬멧을 Rmagick으로 굵게 표시 할 수 없습니다. 당신은 매우 조심 경우

txt.font = "#{Rails.root}/lib/fonts/[font filename].ttf" 

, 당신은 텍스트 대담 (하지만 아마도 이보다) 만들 수 : 가장 좋은 방법은 당신의 레일 프로젝트에 복사하는 bolder font를 다운로드하고 그것을 사용하는 RMagick을 말할 수있다 :

txt.stroke_width = 1 # <-- adjust this parameter 
txt.stroke = "#ffffff" 
txt.stroke_antialias true 
+0

감사합니다. 나는 helvetica 글꼴을 가지고 있었다. 나는 똑같은 일을하고 있었지만 그 글꼴 파일을 어딘가에 배치하고있었습니다. lib/font 내부에 배치하여 작동했습니다. 다시 한번 감사드립니다. – RajSharma