커맨드 라인 도구를 사용하여 CLI 전용 우분투에서 이미지를 자르고 싶습니다 . (libreoffice에있는 것과 동일)
예를 들면 다음과 같습니다.
crop image.jpg -top 5px -bottom 7px -right 14px -left 3px
그러한 도구가 있습니까 (GUI 아님)?
커맨드 라인 도구를 사용하여 CLI 전용 우분투에서 이미지를 자르고 싶습니다 . (libreoffice에있는 것과 동일)
예를 들면 다음과 같습니다.
crop image.jpg -top 5px -bottom 7px -right 14px -left 3px
그러한 도구가 있습니까 (GUI 아님)?
답변:
다음은 convert
이미지 magick 팩을 사용하는 해결 방법 입니다.
sudo apt-get install imagemagick
사진을 위해 image.jpg
$ identify image.jpg
image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009
위에 표시된 것처럼 입력 이미지는 720x482px입니다.
자르기를하려면 두 가지 요소를 결정해야합니다.
이제 image.jpg
위 의 이미지로 돌아가서 자르고 싶습니다.
그런 다음 ( width
x height
+ left
+ top
/ w
x h
+ l
+ t
형식)으로 할 수 있습니다.
convert image.jpg -crop 703x470+3+5 output.jpg
지금
$ identify output.jpg
output.jpg JPEG 703x470 703x470+0+0 8-bit DirectClass 102KB 0.000u 0:00.000
command not found: convert
문제가 발생하면magick
convert in.png -crop 1280x718+0+152 out.png
나는 그 줄을 의미하는 것을 이해합니다 : convert in.png -crop [final-right-x]x[final-right-y]+[crop-left]+[crop-top] out.png
, 비록 @Maythux의 숫자와 일치하지 않는 것 같습니다 ... FWIW!
703x470
대신 해서는 안 713x470
됩니까? 오른쪽 + 왼쪽 자르기로 = 3+14 = 17px
에서 공제하는 것이, 720
이다 703
, 그리고 713
.
WxH+l+t
"사용자 친화적"클리닉 옵션을 만들려면 아래 스크립트를 사용할 수 있습니다. 다음 명령을 실행하십시오.
<script> <image> <crop_left> <crop_right> <crop_top> <crop_bottom>
같은 디렉토리에 image.jpeg
이름 이 잘린 이미지를 만듭니다 image[cropped].jpeg
.
#!/usr/bin/env python3
import subprocess
import sys
# image, crop- dimensions
img = sys.argv[1]; left = sys.argv[2]; right = sys.argv[3]; top = sys.argv[4]; bottom = sys.argv[5]
# arrange the output file's name and path
img_base = img[:img.rfind(".")]; extension = img[img.rfind("."):]; path = img[:img.rfind("/")]
img_out = img_base+"[cropped]"+extension
# get the current img' size
data = subprocess.check_output(["identify", img]).decode("utf-8").strip().replace(img, "")
size = [int(n) for n in data.replace(img, "").split()[1].split("x")]
# calculate the command to resize
w = str(size[0]-int(left)-int(right)); h = str(size[1]-int(top)-int(bottom)); x = left; y = top
# execute the command
cmd = ["convert", img, "-crop", w+"x"+h+"+"+x+"+"+y, "+repage", img_out]
subprocess.Popen(cmd)
스크립트는 imagemagick
sudo apt-get install imagemagick
에서 위의 스크립트를 crop_image
(확장자 없음) 으로 저장하십시오 ~/bin
.
source ~/.profile
디렉토리가에 표시 되도록 실행 하십시오 $PATH
.이제 다음과 같이 이름으로 스크립트를 실행하십시오. 예 :
crop_image /path/to/image.jpg 20 30 40 50
이 경우 공백은 문제가되지 않습니다. 따옴표를 사용하십시오.
crop_image '/path/with spaces in the name/to/image.jpg' 20 30 40 50
image magick
팩 에서 convert 명령을 사용할 수 있습니다 . 또는
을 설치 합니다.
그런 다음을 사용 하여 이미지를 자릅니다. 자세한 내용은 여기 를 참조 하십시오sudo apt-get install imagemagick
sudo yum install ImageMagick
-crop geometry
-crop
옵션이 제공 x
하고 y
오프셋 gravity
입니다. 정사각형을 자르기 위해 시간을 사용할 수 있습니다
이 crop
명령에는 4 가지가 필요합니다. 이해하려면 자르려는 이미지를 가져옵니다. 이제 이미지에서 유지하려는 크기의 사각형을 그리는 것으로 가정하십시오. 이 사각형 외부의 영역이 제거되고 잘립니다. 사각형은 기울어지지 않아야합니다. 즉 상단이 수평이어야합니다.
이제이 4 가지 사항을 기록해 두십시오.
따라서 이제 W, H, L 및 T 값이 있습니다. 여태까지는 그런대로 잘됐다. 픽셀을 알기 위해 우분투에 krule 도구를 설치할 수 있습니다 . 매우 유용한.
이제 터미널을 열고 이미지가 저장된 폴더로 이동하십시오. 다음 명령을 사용하고 W, H, L 및 T의 값을 올바르게 입력하십시오.
convert input.jpg -crop WxH+L+T output.jpg