Як я можу масштабувати всі зображення в папці однакової ширини?


97

Я хочу масштабувати всі зображення в певній папці на однакову ширину (але різного розміру, відповідного масштабу). Як я можу це зробити за допомогою інструменту на основі GUI або командного рядка?

Чи можна обмежувати, які бонусні бали обмежуються, які зображення масштабуються виходячи з їх початкової ширини (тобто лише масштабні зображення, що мають ширину> x та / або ширину <y)?


avconv може це зробити через CLI - Див.: libav.org/avconv.html#scale-1
Старійшина

Відповіді:


152

Це дуже легко зробити за допомогою Imagemagick . Ви повинні мати змогу встановити його в Центрі програмного забезпечення. Я б запропонував це для пакетної обробки зображень.

Зміна розміру партії неймовірно проста (я тестував її за допомогою Ubuntu 11.10). Використовуйте таку команду, щоб змінити розмір кожного файлу .jpg до ширини 200 пікселів, зберігаючи пропорцію:

$ convert '*.jpg[200x]' resized%03d.png

Ви можете зберегти ім'я файлу за допомогою параметра -set. Наприклад:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Якщо у вас є більше файлів, які слід використовувати з find

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Це лише дряпання поверхні сили imagemagick. Змінення розміру можна налаштувати нескінченно . Для більш розширеного розміру вам потрібно скористатися -resizeопцією.

Ви можете обмежити зміна розмірів до усадки :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

або збільшення :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

Перегляньте документацію з геометрії, щоб побачити більше варіантів.


1
Чому jpg в png?
JohnyTex

3
Розширення .jpg та .png - лише приклад для демонстрації використання різних форматів.
банді

Для отримання додаткової інформації про параметр -set: imagemagick.org/script/command-line-options.php ; в основному, -set <property-name> <value>встановлює властивість; %<one-character>і %[<one-or-more-characters>]розширюються Imagemagick до їх значення; властивості, які використовуються для програмного визначення імені вихідного файлу, потрібно починати filename:, тому нам потрібно скопіювати baseвластивість, що містить шлях зображення, у filename:<something>властивість.
marcotama

1
Дякую, що поділився цим трюком, я не знав!
marcotama

2
невідоме властивість зображення "% [base]"
Повідомлення про себе

32

Для GUI, Phatch "один клік коштує тисячі фотографій" є найкращим для такої швидкої роботи. Він уже знаходиться у сховищі Ubuntu.

sudo apt-get install phatch
  1. Додати елемент масштабування та збереження
  2. Встановити параметри масштабу / зміни розміру
  3. Встановіть параметри збереження / виводу
  4. Біжи
  5. Встановити папку введення
  6. Клацніть пакет, щоб виконати

введіть тут опис зображення введіть тут опис зображення


2
Для підсумків приклад, як насправді виконати завдання у питанні, був би приємним :) Але дякую за пораду, приємний інструмент!
jaywink

2
Це не спрацювало на моїй машині (Ubuntu Mate 16.04). Додаток застряг на екрані запуску
Gunith D

1
@GunithDevasurendra, спробуйте його з командного рядка, щоб перевірити наявність помилок. якщо ви не змогли вирішити це питання, будь ласка, напишіть інше питання та включіть цей висновок.
user.dz

1
Чудовий інструмент, я ним користувався роками. На жаль, він не збережений і не працює в поточних версіях Ubuntu. Сподіваюся, хтось може розправити код, щоб виправити його.
Дієго V

У Fedora це не те саме, що вище, і не має такої функціональності
Влад

29

Спробуйте це:

sudo apt-get install gimp-plugin-registry

Потім відкрийте Gimp і відкрийте плагін Batch, знайдений в Filters > Batch > Batch Process.

Виберіть свої зображення на Inputвкладці та визначте операцію Змінити розмір на вкладці, що дивно називається Resize.

Більше інформації можна знайти тут .


21

Спробуйте mogrifyкоманду з інструментів ImageMagick.

  • дати шлях до відокремлення результатів від оригіналів
  • дайте бажану ширину або висоту мініатюри, нижче прикладу ширини
  • таким чином ви зберігаєте оригінальне ім'я файлу :-)

Приклад:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg

1
Це найкраща відповідь на мій погляд!
Том

2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai

+1 , і ви можете змінити найдовшу сторону того , що це за портрет або пейзаж обертає зображення: stackoverflow.com/a/5694903/227926
therobyouknow

9

Ось як я це зробив, зменшивши лише великі зображення :

find . -iname \*.jpg -exec convert -verbose -quality 80 -resize 1600\> "{}" "FOO_FOLDER/{}" \;

Це буде відповідним чином масштабувати висоти.

Для використання convertкоманди потрібно встановити Imagemagick через sudo apt-get install imagemagick.

Для Windows див.: Пакетний сценарій для зміни розміру зображень .


8

Відповіли і прийняли (і я використовую ImageMagick), але для повноти ... У мене є нетехнічний начальник, який хотів простого переглядача з деякими основними інструментами, і це повинен був бути графічний інтерфейс. Я зважився на gThumb для нього.

У вигляді ескізів ви ...

  • Виберіть зображення, які ви хочете змінити
  • Запустіть функцію зміни розміру (натисніть значок гайкового ключа> Змінити розмір зображень ..)
  • Введіть новий розмір на основі пікселів або відсотків
  • Виберіть вихідну папку і вимкніть її.

Для зміни розміру це гідна альтернатива Phatch, поки не буде встановлено 16.04.
Hastig Zusammenstellen

3

Для пакетного зміни розмірів зображень Я дивився багато пакетів і , нарешті , знайшов один з зручним призначеним для користувача інтерфейсом - converseen . Як тільки ви виявите, що важливі налаштування дещо приховані на лівій панелі, що прокручується, все добре.
Не впевнений, чи відповідає це всім випадкам використання ОЗ, але вам, можливо, не доведеться дивитися на химерні інтерфейси користувача imagemagick або phatch.
Як не дивно, пакети для управління фотографіями, такі як digikam, f-spot, fotoxx або shotwell, схоже, не визнають необхідності копіювання / зміни розміру партій зображень перед завантаженням в онлайн-сервіси, такі як photobucket або (gag) flickr. Ці сервіси хочуть, щоб ми все робили так, щоб я не довіряв їм робити резервні копії оригіналів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.