명령 줄 도구 만 사용하여 이미지 자르기


34

커맨드 라인 도구를 사용하여 CLI 전용 우분투에서 이미지를 자르고 싶습니다 . (libreoffice에있는 것과 동일)

예를 들면 다음과 같습니다.

crop image.jpg -top 5px -bottom 7px -right 14px -left 3px

그러한 도구가 있습니까 (GUI 아님)?



이 @ThomasWeller 명령 행 및 GUI되지 도구를 요구하고있다 플러스 GUI 그래서 그냥 제발 질문을 읽기에 대해 사용자가 제공 한 링크 된 문제는 다시입니다
Maythux

2
링크 된 질문은 도구 유형을 지정하지 않습니다. 두 번째 대답은 명령 행 도구에 관한 것입니다 : imagemagick. 답변이 동일한 경우 질문이 중복되는지 여부에 대한 토론이 있음을 알고 있습니다. 사람들은 동의하거나 동의하지 않을 수 있습니다.
토마스 웰러

1
@ThomasWeller 그러나 대답은 편리하지 않습니다. 또한 그가 어떻게 그리고 왜 옵션을 사용했는지 보여주지 않습니다. 솔직히 사용 된 옵션을 이해 했습니까?! 나 자신도 그 정보를 얻을 수 없습니다. 여기가 첫 번째 대답 일뿐입니다. 대답을 저품질로 만드는 설명이 없습니다
Maythux

@ downvoters 당신과 함께 무슨 문제인지 알아야합니까? !!
Maythux

답변:


38

다음은 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입니다.

자르기를하려면 두 가지 요소를 결정해야합니다.

  1. 자르기 시작점 (2 방향 포함)
  2. 자른 사각형 크기 (여기에서 다른 방향을 포함 할 수 있음)

이제 image.jpg위 의 이미지로 돌아가서 자르고 싶습니다.

  • 상위 5px
  • 하단 7px
  • 오른쪽 14px
  • 왼쪽 3px

그런 다음 ( widthx height+ left+ top/ wx 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

2
Imagemagick 7은 "convert"대신 "magick"명령을 사용한다고합니다. 누군가 command not found: convert문제가 발생하면magick
iplus26

1
이것은 큰 도움이되었지만 "계산"에 머리를 감쌀 때까지 시간이 걸렸습니다. 상단과 하단을 자르는 데 필요한 1280x1024 이미지 세트가 있었으므로 최종 이미지에는 원본의 "중간"718 픽셀 (검정색 밴드 상단과 하단을 벗어남)이 있습니다. 나는 이것을 사용해야했습니다 : 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!
Dɑvïd 2019

3
703x470대신 해서는 안 713x470됩니까? 오른쪽 + 왼쪽 자르기로 = 3+14 = 17px에서 공제하는 것이, 720이다 703, 그리고 713.
Mooncrater

도움이되었습니다! 또한 713px 대신 703px (동의 함)로 FIX에 대한 편집을 제안했고, 왼쪽과 상단을 WxH+l+t
뒤집은

12

흰색 영역을 잘라내려면 imagemagick특별한 명령이 있습니다.

convert -trim input.jpg output.jpg

9

"사용자 친화적"클리닉 옵션을 만들려면 아래 스크립트를 사용할 수 있습니다. 다음 명령을 실행하십시오.

<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)

사용하는 방법

  1. 스크립트는 imagemagick

    sudo apt-get install imagemagick
    
  2. 에서 위의 스크립트를 crop_image(확장자 없음) 으로 저장하십시오 ~/bin.

  3. 필요한 경우 디렉토리를 작성하십시오. 이 경우 source ~/.profile디렉토리가에 표시 되도록 실행 하십시오 $PATH.
  4. 스크립트를 실행 가능하게 만드십시오.

이제 다음과 같이 이름으로 스크립트를 실행하십시오. 예 :

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

@Maythux 최신 편집의 의미가 확실하지 않다면 위의 솔루션이 시스템에서 작동하지 않는다는 의미입니까? 클리 만입니다.
Jacob Vlijm 2016 년

3 일 전에 쉬게되어 죄송합니다. 왜 다운 보트를 받는지 모르겠습니다. 대신에 +1이 필요합니다.
Maythux

그러나 나는이 초보자를 위해 매우 열심히 네이티브 자르기 도구를 사용하는 것보다 조금 것 작동도 생각하지만, 나를 위해 나는 당신의 방법, 정말 멋진 사랑, 미안 다시 지연
Maythux

와우 고마워. downvote 내가 이것 때문에 가지고 : meta.askubuntu.com/questions/14082/...
야곱 Vlijm

평판이 나쁘게 사용되지 않는 한 왜 좋은 답변 / 질문이 다운 투표되었는지 모르겠습니다.이 질문은 -3입니다! 흠 왜 그런지
모르겠어

3

image magick팩 에서 convert 명령을 사용할 수 있습니다 . 또는
을 설치 합니다. 그런 다음을 사용 하여 이미지를 자릅니다. 자세한 내용은 여기 를 참조 하십시오sudo apt-get install imagemagicksudo yum install ImageMagick
-crop geometry


이 마진은 다른 마진이 아닌 비율에 따라
Maythux

아니요, -crop옵션이 제공 x하고 y오프셋 gravity입니다. 정사각형을 자르기 위해 시간을 사용할 수 있습니다
M.Fooladgar

어쨌든, 대답은 당신의 도움에 대한 감사를 게시,하지만 당신은 당신의 대답 before4에 그 작성해야
Maythux

@Arronical 감사합니다 나는 이미 그것을 얻었고 답변으로 게시했습니다. 그것을 확인하십시오
Maythux

3

사용하십시오 mogrify -crop <W>x<H>+<X>+<Y> <files>.

주의 : 파일은 예고없이 덮어 씁니다.


1

crop명령에는 4 가지가 필요합니다. 이해하려면 자르려는 이미지를 가져옵니다. 이제 이미지에서 유지하려는 크기의 사각형을 그리는 것으로 가정하십시오. 이 사각형 외부의 영역이 제거되고 잘립니다. 사각형은 기울어지지 않아야합니다. 즉 상단이 수평이어야합니다.

이제이 4 가지 사항을 기록해 두십시오.

  1. 직사각형의 픽셀 단위의 폭 (W)
  2. 사각형의 높이 (H)
  3. 이미지의 왼쪽 여백 / 끝 (L)에서 사각형의 왼쪽 세로 측 거리
  4. 이미지의 상단 여백 / 끝에서 사각형 상단의 거리 (T).

따라서 이제 W, H, L 및 T 값이 있습니다. 여태까지는 그런대로 잘됐다. 픽셀을 알기 위해 우분투에 krule 도구를 설치할 수 있습니다 . 매우 유용한.

이제 터미널을 열고 이미지가 저장된 폴더로 이동하십시오. 다음 명령을 사용하고 W, H, L 및 T의 값을 올바르게 입력하십시오.

convert input.jpg -crop WxH+L+T output.jpg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.