如何使用 Imagemagick 新增邊框

如何使用 Imagemagick 新增邊框

我想在 Imagemagick 中添加我的照片:

  • 白色邊框
  • 2吋寬

我該怎麼做?

答案1

convert -bordercolor white -border 20 input.jpg output.jpg

將為圖像添加一個大小為 20 像素的白色邊框。您只需要找出一英吋 (dpi) 圖像是多少 px。

可以找到更多例子這裡

就我的測試圖像而言,它已在其中保存了 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
...

如您所見,它的 dpi 為 96x96,單位為 PixelsPerInch 類型。

在這種情況下,我的圖像上的 2 英寸是 192 像素。

答案2

首先,找出 2 吋邊框將有多少個像素。

現在使用類似轉換

convert <input> -size <newsize> xc:white +swap -gravity center -composite <output>

假設影像尺寸為 3600x2400,解析度為 100px/in。因此,您必須為每個尺寸添加 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。這是我的建議的快捷方式,我使用它來具有不同大小的邊框(rsp。固定縱橫比,獨立於原始圖像的縱橫比)。

沒有將單位設定為英吋的選項。 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

  1. myimage-original.png使用當前(無框架)內容創建
  2. 將框架添加到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
  1. 它複製myimage-original.pngmyimage.png
  2. 添加框架至myimage.png

因此我只是myimage-original.png透過腳本更新和添加框架。

相關內容