Как изменить размер изображения через терминал? [Дубликат]

У этого вопроса уже есть ответ здесь: как легко изменить размер изображений через командную строку? 14 ответов

У меня Ubuntu 10.04. Я преобразовал изображение через терминал, используя следующую команду:

convert myfigure.png myfigure.jpg

Но я хочу изменить размер и ширину преобразованного изображения. Есть ли способ сделать это?

1
задан 11 September 2017 в 12:17

3 ответа

Если вы хотите только CLI:

sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png 
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg

Если вы хотите попробовать GUI:

Установить nautilus-image-converter

sudo apt-get install nautilus-image-converter

Он добавляет два пункта контекстного меню в nautlius, чтобы вы могли щелкнуть правой кнопкой мыши и выбрать «Изменить размер изображения». (Другой - «Повернуть изображение»).

Вы можете сделать целый каталог изображений в одном пойдите, если хотите, и вам даже не нужно открывать приложение для этого.

36
ответ дан 25 May 2018 в 00:13
  • 1
    Есть ли более подходящее ПО для CLI, чем это? Он падает и работает примерно на 80% изображений. – Luka 29 March 2018 в 22:24

Поскольку Ubuntu поставляется с Python, вы также можете использовать скрипт Python для достижения этого, имея немного больше контроля над тем, что происходит - см. этот вопрос в стеке, например, сценарии. В этих примерах используется только стандартная библиотека.

Сценарий # 1

import os, sys
import Image

size = 128, 128

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.ANTIALIAS)
            im.save(outfile, "JPEG")
        except IOError:
            print "cannot create thumbnail for '%s'" % infile

И еще один пример, где вам нужно указать ширину (как переменную ширины):

Сценарий # 1

from PIL import Image
import sys

filename = sys.argv[1:]
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save(filename) 

Теперь, как это сделать через терминал ...

sudo nano resizescript.py

Вставить один из этих блоков кода в текстовый редактор. Ctrl + x для выхода (скажем да, чтобы сохранить изменения).

Использовать сценарий # 1:

python resizescript.py yourfilenamehere.jpg

Использовать сценарий # 2:

python resizescript.py yourfilenamehere.jpg

Вы должны находиться в том же каталоге, что и файлы изображений для обоих этих сценариев. Первый сжимает изображение до 128x128 пикселей. Второй скрипт составляет 300 пикселей в ширину и вычисляет пропорциональную высоту. Это скорее ответ на Python, но все это делается через терминал технически.

1
ответ дан 25 May 2018 в 00:13
  • 1
    пожалуйста, укажите пример (ы) здесь – Zanna 10 September 2017 в 23:20
  • 2
    Пожалуйста, укажите пример через терминал в соответствии с вопросом. – kenorb 11 September 2017 в 00:10
  • 3
    Спасибо, я принял слишком много в моем первом ответе. Я внес изменения в вопрос. – freeworld 12 September 2017 в 03:05
  • 4
    Обратите внимание, что PIL доступен только для Python 2; поддержка 3.x запланирована "позже" согласно pythonware.com/products/pil – arp 21 January 2018 в 20:13

imgp - относительно новая утилита, которая изменяет размер и вращение изображения. Он имеет больше возможностей, чем nautilus-image-converter.

0
ответ дан 25 May 2018 в 00:13

Другие вопросы по тегам:

Похожие вопросы: