Яка програма може автоматично змінити розмір і обрізати папку зображень до певної роздільної здатності?


11

Я хотів би взяти папку із зображеннями різного розміру та обрізати їх на сітці площею 600х600, вирізаній із середини зображення. Чи існує програма, яка може автоматично змінити розмір і обрізати ці параметри, а потім вивести у вигляді стисненого .png-файлу? Для зображень розміром менше 600x600 я хотів би, щоб програма збільшила розмір зображення до цього виміру.


1
Я перевірив свій Irfanview, і його партія врожаю статична з можливістю лише починати з кутів і фіксованим зміщенням. Він не може зробити центрування та умовний розмір, про який вимагає ОП. Він не підходить для змінних розмірів зображення.
Майкл Нільсен

1
Я дуже сподіваюся, що XnConvert може робити те, що ви шукаєте, але, як IrfanView, це не зробить обрізаний по центру на довільних розмірах зображення.
Марк Уітакер

Відповіді:


12

Команда Batch Photoshop може це зробити. Ви, по суті, один раз «записуєте» себе, виконуючи обрізку тощо, а потім запускаєте запис на всіх потрібних файлах. Якщо ви хочете автоматично змінити розмір менших зображень, вам доведеться зробити невеликий сценарій.

Irfanview також має всеосяжний пакетний процесор зображення, але, можливо, знадобиться трохи експериментувати, щоб отримати потрібні результати.


10

ImageMagick дозволить вам запускати команди у вікні команд Windows. Вам потрібно бути зручним для створення пакетних файлів Dos.

Для прикладу дивіться останню публікацію в цій дискусії: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21112

Відповідний приклад з цього форуму:

@echo off

cd C:\Users\user\Desktop\New\New folder

convert *.jpg -fuzz 10%% -trim -write %%02d_trim.png -scale "x1!" txt:

convert *_trim.png -crop 209x329+0+0 -fuzz 10%% -trim +repage %%02d_left.png

convert *_trim.png -crop 173x336+227+0 -fuzz 10%% -trim +repage %%02d_right.png

@pause

Найкраще, якщо тут цитуються чи узагальнюються відповідні частини зовнішніх ресурсів. Зовнішні посилання потенційно можуть переходити в режим офлайн у будь-який час, скасовуючи відповідь, яка містить лише посилання. На надане вами посилання є відповідь, проте я прошу, щоб ви цитували відповідну команду тут у своїй відповіді, щоб зробити її більш життєздатною.
jrista

7

Спочатку я подумав, що ви хочете отримати пакетний розмір, який можуть зробити багато програм. Але тоді я зрозумів, що ви хочете зробити комбінацію зміни розміру та обрізання, і ви хочете, щоб комп'ютер розраховував, як найкраще динамічно вирізати 600x600 пікселів із зображення.

Це тому, що це не завдання "єдиного справжнього рішення", як це звичайно закликає людське судження, як обрізати зображення, тому це може бути зроблено лише шляхом завантаження певних умов. Наприклад, подивіться на співвідношення сторін і завжди змініть розмір найменшого розміру до X та обріжте Y (по центру / праворуч / ліворуч) пікселів. Якщо я правильно прочитав ваше твердження, ви хочете обрізати 600 пікселів з X і Y в центрі обох вимірів, якщо обидва розміри - 600 і більше. І змінити розмір до 600 лише в тому випадку, якщо один вимір менше 600?

Я давно хотів додати подібну функцію до своєї програми "Перегляд зображень Plus More", і я думаю, що параметри функції мають бути приблизно такими: - розмір обрізання: wxh - ширина вирівнювання: центр / зліва / справа - висота вирівнювання: центр / зліва / справа - розмір: ні / якщо менше / якщо більше / обидва

Ще потрібні налаштування?

Оновлення: я вже зараз програмував цю функцію в Image View Plus More 2.4:

http://www.sequoiagrove.dk/tools.php

Інструкція: встановити, перетягнути зображення, які потрібно обрізати, "зберегти все в нову папку", дати йому базове ім'я або%, щоб використовувати оригінальне ім'я файлу, а потім у наступному діалоговому вікні виберіть "автокроп "та заповніть поля для ширини та висоти та виберіть вирівнювання" центр "по висоті та ширині та встановіть прапорець" змінити розмір, якщо менший ".

Я зробив підручник, як це зробити:

Рішення проблеми з ОП: http://www.youtube.com/watch?v=wBc1s6zuDJM

Інший приклад: http://www.youtube.com/watch?v=3nFrnaefsqA


Дивіться свою відповідь, я виписав код у python.
Onlyjus

1
Так, зараз це не так статично, але ви впевнені, що ОП зацікавлена ​​в програмуванні його редагування зображень?
Майкл Нільсен

Я поняття не маю. ОП просто попросив програму, тому я написав її.
Onlyjus

Як ви бачите, я тепер додав цю функцію, і у мене є ідеї щодо вдосконалень, як-от "показати на прикладі" (на фотографії, що переглядається в даний момент), тому вам не доведеться обмежувати себе в центрі або вирівнювати по краях. Я, звичайно, повинен був би розібратися, як узагальнити цей приклад на різні пропорції та розміри.
Майкл Нільсен

Приємно! Про що написана у вашій програмі та чи доступне джерело?
Onlyjus

5

Якщо вам подобається програмування, ви можете використовувати Python (комп'ютерна мова), і чудова бібліотечна інформація має PIL для обрізання, зміни розміру, побудови графіків, отримання індивідуальних піксельних значень тощо на програмному рівні. Таким чином, ви можете легко написати простий скрипт, щоб знайти всі зображення в папці і виконати операцію.

Цей код повинен робити саме те, що ви хочете, і обробляти пару зображень в секунду, залежно від розміру зображення:

#Python 2.7, PIL 1.1.7

import Image
import glob
import os

#Function to resize image, preserving aspect ratio
def resizeAspect(im, size):
    w,h = im.size
    aspect=min(size[0]/float(w), size[1]/float(h))
    return im.resize((int(w*aspect),int(h*aspect)),Image.ANTIALIAS)

imgList=glob.glob('C:/icons/*.png')         #Find all png images in a directory

for img in imgList:                              #Loop through all found images
    im = Image.open(img)                         #open the image
    print "resizing:",os.path.basename(img)
    w,h = im.size                                #Get image width and height
    if min(w,h)<600:                             #Check if either dimension is smaller then 600
        im=resizeAspect(im,(600,600))            #Re-size Image
        w,h = im.size                            #update image size
    center = [int(w/2.0),int(h/2.0)]             #Calculate Center
    box = (center[0]-300, center[1]-300, center[0]+300, center[1]+300) #Defines a box where you want it to be cropped
    croppedIm = im.crop(box)                     #Crop the image
    #croppedIm.show()                            #Show the cropped image
    fileName, fileExtension=os.path.splitext(img)
    croppedIm.save(fileName+'_crop.png', "PNG")  #Save the cropped image

Коли ви почнете працювати на програмному рівні, то небо - це межа! Можна навіть виявити обличчя та обрізати навколо обличчя, що дозволяє інтелектуально обрізати тисячі фотографій ...

[оновлено 12.12.2012]


4

ThumbsPlus може робити все, що вам потрібно. У меню "Зображення" виберіть "Пакетний процес" або натисніть F12 та відповідайте на інтерактивні підказки. Ви можете додати до набору кілька операцій і зберегти їх для негайного використання, а також для подальшого використання. Надалі просто отримайте доступ до встановленого вами імені, яке ви раніше налаштували, щоб автоматично запустити його в каталог або підбірку фотографій, або навіть на все дерево каталогів.

Створюючи набір, вам надається зразок зображення, щоб проілюструвати варіант, який ви додали до операцій.

Будьте уважні у складанні набору, оскільки важливий порядок операцій.


4

Sizzlepig.com - це онлайн-інструмент, який зробить це легко, ви можете встановити розмір "план" 600x600, а потім на ньому обрізати центр усіх зображень.

У частині "Для зображень розміром менше 600x600 я хотів би, щоб програма збільшила розмір зображення до цього виміру". Я настійно рекомендую НЕ намагатися збільшити масштаб зображень, а намагатися знайти джерело більш високої якості, з яким працювати. Я знаю, що це не завжди можливо, але це призведе до набагато більш високої якості, ніж спроби підвищити масштаб.

(Я працюю на sizzlepig, але його все ще чудовий інструмент)


Будь ласка, дивіться faq . Тут добре згадати власні речі, але це потрібно сказати.
Прочитайте, будь ласка, мій профіль

1
Класно. Ласкаво просимо на сайт, залишайтеся навколо та відповідайте та задайте деякі інші запитання. :)
Прочитайте мій профіль


2

Irfanview може це зробити, але потрібно трохи налаштувати.

Використовуйте опцію пакетного перетворення. Виберіть "PNG" як вихідний формат. Клацніть на кнопку «Параметри» поруч із вихідним форматом та виберіть потрібне стиснення та натисніть «ОК»

Поставте прапорець "Використовувати розширений варіант", а потім натисніть кнопку "Додатково"

Ви побачите це вікно

Додаткові налаштування Irfanview

Налаштуйте розмір із найкоротшою стороною 600. Переконайтесь, що ви поставите галочку "зберегти співвідношення сторін" та "використовувати функцію повторної вибірки". Зніміть позначку "Не збільшуйте менші зображення"

Якщо ви різко зменшуєте розмір оригінальних зображень, то, можливо, ви захочете поставити галочку біля "загострення" і додати значення. Моя вимога полягала в зображеннях розміром 150х150, і я виявив, що їм потрібно чіткіше значення приблизно 20, щоб відповідати якості зображення, яке я отримував з Photoshop. Для ваших зображень розміром 600x600 вам може не знадобитися чіткіше значення, тому ви можете зняти цю опцію.

Замість того, щоб використовувати «обрізати», використовуйте параметр «розмір полотна» - переконайтесь, що ви поставили галочку

Натисніть кнопку "налаштування" поруч із опцією розміру полотна. Ви побачите це вікно

Параметри розміру полотна Irfanview

Виберіть спосіб 2, а ширина та висота - 600. Оберіть опцію «центр» для якоря

Колір полотна не має значення, оскільки він фактично не додає межі зображення

Тепер на вдосконаленому екрані знову поставте прапорець біля "замовлення на замовлення на обробку" та переконайтесь, що "розмір" є першим у списку - тобто, щоб змінити розмір до обрізання.

Натисніть кнопку ОК

Переконайтесь, що ви вибрали файли, які ви хочете конвертувати, налаштуйте вихідний каталог і натисніть кнопку "запустити пакет"



0

На сайті http://pixresizer.software.informer.com/ доступна утиліта з декількома опціями.

Це хороше програмне забезпечення. Хороший засіб, простий у використанні та швидший у роботі. Коли я роблю фотографії, я використовую її для обробки зображень у пакетному режимі. Багато разів мені потрібно зменшити розмір фотографій, щоб поділитися ними через Інтернет. Я також спробував якесь інше програмне забезпечення, але знайшов це хорошим. (Я не пов'язаний з цією компанією.)


Чи є програмне забезпечення корисним? Чому? Ви пов’язані з компанією?
Пол Сезанн

Привіт Пол, так це хороше програмне забезпечення. Хороший засіб, простий у використанні та швидший у роботі. Коли я роблю фотографії, я використовую її для обробки зображень у пакетному режимі. Я також спробував якесь інше програмне забезпечення, але вважав це гарним. Ні !, я не пов'язаний з цією компанією.
Махеш Манкар

Махеш, ти можеш брати свої коментарі та редагувати свою відповідь? Не всі читають коментарі. І розповідайте нам все більше і більше про це, ми хотіли б знати!
Пол Сезанн

0

Я не знаю, чому про це ніхто не згадує, але мій улюблений - multipleimageresizer.net . Це дозволяє зробити багато чого, як обрізання, зміна формату, розміру, додавання тексту, водяних знаків ... тощо. на декількох зображеннях одночасно.

Це в режимі реального часу .. Я рекомендую!

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