
Imagemagick의 사진에 추가하고 싶습니다.
- 흰색 테두리
- 폭 2인치
내가 어떻게 해?
답변1
convert -bordercolor white -border 20 input.jpg output.jpg
이미지에 20픽셀 크기의 흰색 테두리를 추가합니다. 이미지의 1인치(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
...
보시다시피 단위는 PixelsPerInch 유형이므로 96x96dpi를 갖습니다.
이 경우 내 이미지의 2인치는 192px입니다.
답변2
먼저 2인치 테두리에 몇 픽셀이 있는지 알아보세요. 원본 이미지의 #pixels에 이 픽셀을 추가합니다(양쪽에 동일한 테두리를 원하므로 두 번).
이제 다음과 같은 변환을 사용하십시오.
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
. 이는 다양한 크기의 테두리(원본 이미지와 관계없이 고정된 종횡비)를 갖는 데 사용하는 내 제안에 대한 바로가기입니다.
단위를 인치로 설정하는 옵션은 없습니다. 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
스크립트를 통해 프레임을 업데이트하고 추가하기만 하면 됩니다.