4方向のトリミングするピクセルのみを示すコマンドラインツールを使用して、CLIのみでUbuntuの画像をトリミングします。(libreofficeにあるものと同じ)
例えば:
crop image.jpg -top 5px -bottom 7px -right 14px -left 3px
そのようなツール(GUIではない)はありますか?
4方向のトリミングするピクセルのみを示すコマンドラインツールを使用して、CLIのみでUbuntuの画像をトリミングします。(libreofficeにあるものと同じ)
例えば:
crop image.jpg -top 5px -bottom 7px -right 14px -left 3px
そのようなツール(GUIではない)はありますか?
回答:
これは、convert
イメージマジックパックから使用する回避策です。
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です。
トリミングを行うには、次の2つの要素を決定する必要があります。
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
「ユーザーフレンドリー」なCLIオプションを作成するには、以下のスクリプトを使用できます。コマンドを実行するだけです:
<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
パックで変換コマンドを使用できます。
インストールしますsudo apt-get install imagemagick
かsudo yum install ImageMagick
。
次に-crop geometry
、画像のトリミングに使用します。詳細については、こちらをご覧ください
-crop
オプションはを提供しx
、y
それはオフセットとgravity
です。あなたはそれを使用して正方形を
crop
コマンドが4つのものを必要とします。それを理解するには、切り取りたい画像を取ります。ここで、イメージ上で、保持したいサイズの長方形を描いていると想像してください。この長方形の外側の領域は削除され、切り取られます。長方形を傾けてはいけません。つまり、上面が水平でなければなりません。
次に、次の4つのことを書き留めます。
したがって、W、H、L、およびTの値が得られます。ここまでは順調ですね。ピクセルを知るには、Ubuntuにkruleツールをインストールします。非常に便利。
ここで、ターミナルを開き、画像が保存されているフォルダーに移動します。次のコマンドを使用して、W、H、L、およびTの値を適切に設定します。
convert input.jpg -crop WxH+L+T output.jpg