96256


やりたいこと  
ImageMagickで、2つのテキストを画像に追加したい。

テキスト要件  
・フォントの大きさは異なる。 1番目テキストの方が２番目テキストよりフォントを大きくしたい。  
・画像横幅は固定(例えば800px)  
・改行コードを使用せず指定横幅(例えば500px)で自動改行したい

┌───────────────────────┐  
│  
│  
│  
│ 1番目テキスト。ここのフ  
│ ォントは大きく  
│  
│ 2番目テキスト。ここのフ  
│ ォントは小さく  
│  
│  
│  
└───────────────────────┘

現在の理解  
・改行コードを使用せず指定横幅で自動改行するには、captionオプションを使用すればよい  
・「フォントの大きさが異なる」2つのテキストを画像に追加するには、annotateオプションを使用すればよい

試してみたがうまくいかなかったので、GPT-3.5へ質問してみた回答の抜粋

> ImageMagickの convert コマンドにおいて、-annotate オプションと -caption  
>  オプションを同時に使用することはできません

２番目テキストだけでも自動改行したいと思い試したが、意図した通り動作しないコード

[code]

    convert originImg.jpg -font hogeFont.otf -background none \
     -size 500x -pointsize 50 -fill white -gravity center -annotate +0-50 "1番目テキスト" \
     -pointsize 30 -fill blue -gravity center -annotate +0+50 size 500px  caption:"2番目テキスト。とても長いテキストです。" \
     -gravity center output.jpg
    
[/code]

Q.やりたいことをするためにはどうすればよいですか？  
1番目テキストと２番目テキストの両方を、改行コードを使用せず指定横幅で自動改行したいのですが、難しければ２番目テキストだけでも自動改行したい


CC BY-SA 4.0
2023-09-18T14:57:42.767
96255
2023-09-18T22:16:11.423
7886
question
imagemagick
ImageMagickで、「フォントの大きさが異なる」かつ「改行コードを使用せず指定横幅で自動改行」する2つのテキストを画像に追加したい


`-composite` で重ね合わせて、`-geometry` でテキストの位置を調整します。

[code]

    convert originImg.jpg -font hogeFont.otf -background none -gravity center -size 500x \
     \( -pointsize 50 -fill white -geometry +0-50 caption:"1番目テキスト" \) \
     -composite \
     \( -pointsize 30 -fill blue  -geometry +0+50 caption:"2番目テキスト。とても長いテキストです。" \) \
     -composite output.jpg
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/upLjR.jpg)](https://i.stack.imgur.com/upLjR.jpg)


CC BY-SA 4.0
2023-09-18T21:08:37.403
96256
2023-09-18T22:16:11.423
2023-09-18T22:16:11.423
47127
47127
96255
answer