
Imagemagick で写真に追加したい内容:
- 白い枠線
- 幅2インチ
どうすればいいですか?
答え1
convert -bordercolor white -border 20 input.jpg output.jpg
画像に 20 ピクセルの白い枠線を追加します。必要なのは、画像の 1 インチ (dpi) が何ピクセルであるかを調べることだけです。
さらなる例は以下を参照ここ。
私のテスト画像の場合、dpi 情報が保存されていました。これを使用して取得するidentivy -verbose
と、次のようになります。
$ identify -verbose tiger.jpg
Image: tiger.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 600x400+0+0
Resolution: 96x96
Print size: 6.25x4.16667
Units: PixelsPerInch
Type: TrueColor
...
ご覧のとおり、単位は PixelsPerInch 型なので、96x96 dpi になります。
その場合、私の画像の 2 インチは 192 ピクセルになります。
答え2
まず、2 インチの境界線のピクセル数を調べます。これらのピクセルを元の画像のピクセル数に追加します (両側に同じ境界線が必要なため、2 回追加します)。
次のように変換します
convert <input> -size <newsize> xc:white +swap -gravity center -composite <output>
たとえば、画像サイズが3600x2400で、解像度が100px/インチだとします。したがって、各寸法に400pxを加算して、結果として4000x2800になります。(これらの値を調べる方法は、@V-masterによって説明されています)。次に、コマンドは次のようになります(ここで入力.jpgオリジナルであり、出力.jpg結果です)
convert input.jpg -size 4000x2800 xc:white +swap -gravity center -composite output.jpg
私にとっては、これは要求どおりに機能しました。
編集:
convert input.jpg -bordercolor white -border <n> output.jpg
(すでに @V.master が提案しているように) も機能しますが、-bordercolor
オプションのみを の前に定義する必要があります-border
。これは私の提案のショートカットであり、異なるサイズの境界線 (元の画像のアスペクト比とは無関係の固定アスペクト比) を設定するために使用します。
単位をインチに設定するオプションはありません。2 インチが何インチかは、印刷時の画像の出力解像度によって異なります (例: 300dpi: n=600、600dpi: n=1200 など)。
不思議に思う人のために:xc
非オプションとはXウィンドウの色を設定し、キャンバス色。ImageMagick の新しいバージョンでは、canvas
わかりやすくするためにエイリアスが追加されました。
答え3
ドキュメントの作成中に、画像を更新してフレームを再度追加する必要があります。
次のスクリプトを使用すると、フレームを簡単に追加できます。
#!/bin/bash -e
if [ -z "$1" ]; then
echo "Usage: $0 file"
exit 1
fi
file="$1"
if [[ "$file" == *"-original"* ]]; then
original=$file
file=${file//-original/}
else
extension=${file##*.}
original="${file%.$extension}-original.$extension"
fi
if [ ! -e "$original" ]; then
mv "$file" "$original"
fi
convert -bordercolor white -border 2 "$original" "$file"
たとえば、myimage.png
フレームのないファイルがあるとします。次のコマンド:
$ ./add_frame.sh myimage.png
ファイルの場合myimage.png
:
myimage-original.png
現在の(フレームなしの)コンテンツで作成します- フレームを追加
myimage.png
次の実行の場合:
$ ./add_frame.sh myimage.png # you may use current name
$ ./add_frame.sh myimage-original.png # or with original suffix, result is the same
- コピーします
myimage-original.png
→myimage.png
- フレームを追加
myimage.png
myimage-original.png
したがって、スクリプトを使用してフレームを更新および追加するだけです。