1

Я пытаюсь, чтобы длинная строка текста появлялась на нескольких строках.несколько строк с image_magick

Есть ли способ для автоматического обертывания текста?

<% 
    image = MiniMagick::Image.open("public/output4.jpg") 
    image.combine_options do |c| 
    c.font 'Arial' 
    c.pointsize '30' 
    c.gravity "center" 
    c.size '360x' 
    c.fill 'white' 
    c.annotate '0,0', "this is a multi-line text paragraph this is a multi-line text paragraph" 
    end 
    image.write "public/output4.jpg" 
    %> 

UPDATE Я также попытался заменить пояснение подписи ... и получить следующее сообщение об ошибке

MiniMagick::Error (Command ("mogrify -pointsize 30 -gravity center -size 360x -fill white caption:this is a multi-line text paragraph this is a multi-line text paragraph /var/folders/1s/dh01tgyn3j39f673v1d_xywc0000gn/T/mini_magick20140103-15012-11w3xtz.jpg") failed: {:status_code=>1, :output=>"mogrify: no encode delegate for this image format `this is a multi-line text paragraph this is a multi-line text paragraph' @ error/constitute.c/WriteImage/1195.\n"}): 

ответ

1

Вы должны быть в состоянии использовать пункт включен заголовок для этого, что позволит вам вставляйте новые строки, где вы хотите перерывы.

Полную документацию по директиве и параметры заголовка здесь: http://www.imagemagick.org/Usage/text/#caption_paragraphs

EDIT: пример кода

Проблема заключается в том, что ваш код использует mogrify утилиту (по умолчанию), а не полезность новообращенного:

<% 
    image = MiniMagick::Image.open("public/output4.jpg") 
    image.combine_options('convert') do |c| 
    c.font 'Arial' 
    c.pointsize '30' 
    c.gravity "center" 
    c.size '360x' 
    c.fill 'white' 
    c.annotate '0,0', "this is a multi-line text paragraph\n this is a multi-line text paragraph" 
    end 
    image.write "public/output4.jpg" 
    %> 
+0

Я посетил это раньше. Предложения для кода? – user749798

0

Вы можете разбить аннотированный текст на отдельные аннотированные строки, хотя это довольно kludgy и, скорее всего, не то, что вы ищете.

0

Подпись - это вариант, который вы ищете. http://www.imagemagick.org/Usage/text/#caption

MiniMagick, кажется, ошибка с титрами с mogrify https://github.com/minimagick/minimagick/issues/191

Что вы можете сделать, чтобы пойти вокруг этого вопроса сейчас является использование метода команды добавить на строителя.

image.combine_options do |c| 
    c.add_command "caption", "a very long caption" 
end 

Что вы должны сделать, чтобы прибить этот вниз, чтобы первым узнать точную mogrify команду, которую вы хотите применить на изображение, обратившись к документации ImageMagick, а затем проверить, что minimagick строит ту же команду.

Вы можете увидеть команду, построенную:

image.combine_options do |c| 
    c.add_command "caption", "a very long caption" 
    p c.command # this should give out the command built 
end