문제

여러 이미지를 자르고 있어야합니다 jpeg Linux에서 오른쪽에 20 픽셀의 형식.

나는 확인했다 jpegtran, 그러나 자르기 전에 픽셀로 파일 크기가 필요하며 배치 파일을 작성하는 방법을 모르겠습니다.

프로그래밍 방식으로 이미지의 오른쪽에서 20 픽셀을 무자비하게 자르려면 어떻게해야합니까?

도움이 되었습니까?

해결책

내 쉘 스크립팅은 약간 녹슬 으므로이 스크립트를 시도하기 전에 이미지를 백업하십시오.

#!/bin/bash
FILES=/path/to/*.jpg

for f in $FILES
do
    identify $f | awk '{ split($3, f, "x"); f[1] -= 20; cl = sprintf("jpegtran -crop %dx%d+0+0 %s > new_%s", f[1], f[2], $1, $1); system(cl); }'
done

주목할 점 :

  • 경로를 올바른 값으로 조정하십시오
  • *.jpeg가 필요합니까?
  • identify imagemagick 명령입니다
  • awk 픽셀 치수를 가져옵니다 identify 매개 변수로 사용하려면 (폭이 20px 감소) jpegtran 이미지를 자르기 위해
  • 새로운 이미지는 다음과 같이 저장됩니다 new_[old_name].jpg
  • jpegtran 자르기 영역을 조정하여 무손실로 수행 할 수 있습니다. 결과 이미지가 올바른 크기이며 약간 크지 않은지 확인하십시오.

다른 팁

허용 된 답변과 매우 유사하자면 다음은 공백이 포함 된 파일 이름과도 작동합니다. 그리고 그것은 논란의 여지가있을 것입니다 identify내장 -format 옵션 awk로 출력을 구문 분석하는 대신.

#!/bin/bash

X=0; Y=0   # offset from top left corner

for f in /path/to/*.jpg; do
    read -r W H < <(identify -format '%w %h' "$f") # get width and height
    (( W -= 20 ))                                  # substract 20 from width
    out="${f%%.jpg}-crop-20.jpg"                   # add "-crop-20" to filename
    jpegtran -crop ${W}x$H+$X+$Y "$f" > "$out"     # crop
done
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top