
我想在 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
:
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
透過腳本更新和添加框架。