Какая программа может автоматически изменять размер и обрезать папку изображений до определенного разрешения? - Фотопедия
10 голосов
/ 12 сентября 2012

Я хотел бы взять папку с изображениями разных размеров и обрезать их в квадрат сетки 600x600, вырезанный из середины изображения. Существует ли программа, которая может автоматически изменять размеры и обрезать до этих размеров, а затем выводить их в виде сжатого файла .png? Для изображений размером менее 600x600 я бы хотел, чтобы программа увеличила размер изображения до этого размера.

Ответы [ 11 ]

12 голосов
/ 12 сентября 2012

Пакетная команда Photoshop может сделать это. По сути, вы «запишете» себя, выполняя обрезку и т. Д., А затем запустите запись для всех файлов, которые вы хотите. Если вы хотите автоматически изменить размер меньших изображений, вам придется немного написать сценарий.

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

10 голосов
/ 12 сентября 2012

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
7 голосов
/ 12 сентября 2012

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

Дело в том, что задача обрезки изображения заключается не в том, что это задача «единственно верного решения», как это обычно делается человеческим суждением, поэтому ее можно выполнить только путем начальной загрузки определенных условий. Например, посмотрите на соотношение сторон и всегда измените размер кратчайшего размера на X и обрежьте Y (по центру / справа / слева) пикселей. Если я правильно прочитал ваше утверждение, вы хотите обрезать 600 пикселей по центру X и Y в обоих измерениях, если оба размера 600 или более. И только изменить размер до 600, если одно измерение меньше, чем 600?

Я давно хотел добавить такую ​​функцию в свою программу «Image View Plus More», и я думаю, что настройки функции должны быть примерно такими: - размер урожая: ш х ч - выровнять ширину: центр / влево / вправо - выровнять высоту: центр / левый / правый - изменить размер: нет / если меньше чем / если больше чем / оба

Еще какие-нибудь настройки вам нужны?

Обновление: теперь я завершил программирование этой функции в Image View Plus More 2.4:

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

How-to: установить, перетащить и обрезать изображения, которые вы хотите обрезать, "сохранить все в новую папку" и дать ему базовое имя или%, чтобы использовать исходное имя файла, а затем в следующем диалоговом окне выберите «autocrop» и заполните поля для ширины и высоты, и выберите выравнивание «center» для высоты и ширины, и отметьте «изменить размер, если меньше».

Я сделал учебник, как это сделать:

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

Другой пример: http://www.youtube.com/watch?v=3nFrnaefsqA

4 голосов
/ 17 ноября 2012

ThumbsPlus может делать то, что вы просите. В меню «Изображение» выберите «Пакетная обработка» или нажмите клавишу «F12» и ответьте на интерактивные запросы. Вы можете добавить несколько операций в набор и сохранить его для немедленного использования, а также для будущего использования. В будущем просто получите доступ к ранее заданному имени набора, чтобы автоматически запускать его в каталоге, выборе фотографий или даже во всем дереве каталогов.

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

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

4 голосов
/ 16 ноября 2012

Sizzlepig.com - это онлайн-инструмент, который сделает это легко, вы можете установить размер «чертежа» равным 600x600, а затем установить центр обрезки всех изображений.

Для части «Для изображений размером менее 600x600 я бы хотел, чтобы программа увеличила размер изображения до этого размера». Я настоятельно рекомендую НЕ пытаться масштабировать изображения, а пытаться найти источник более высокого качества для работы. Я знаю, что это не всегда возможно, но это приведет к гораздо более высокому качеству продукции, чем попытка повышения качества.

(я работаю на sizzlepig, но это все еще отличный инструмент)

4 голосов
/ 12 сентября 2012

Если вам нравится программирование, вы можете использовать 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

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

[обновлено 09.12.2012]

2 голосов
/ 26 июля 2013

Irfanview может сделать это, но требует небольшой настройки.

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

.

Установите флажок «Использовать расширенный параметр», затем нажмите кнопку «расширенный»

Вы увидите это окно

Irfanview advanced settings

Установите изменение размера с самой короткой стороной 600. Убедитесь, что вы отметили «сохранить соотношение сторон» и «использовать функцию повторной выборки». Снимите флажок «Не увеличивать уменьшенные изображения»

Если вы резко уменьшаете размер оригинальных изображений, вы можете поставить галочку в поле «Резкость» и добавить значение. Мое требование было для изображений размером 150x150, и я обнаружил, что им нужно значение резкости около 20, чтобы соответствовать качеству изображения, которое я получал из фотошопа. Для изображений 600x600 вам может не понадобиться резкость, поэтому вы можете снять эту опцию.

Вместо использования «кадрирования» используйте настройку «Размер холста» - убедитесь, что вы отметили опцию

Нажмите кнопку «Настройки» рядом с параметром размера холста. Вы увидите это окно

Irfanview canvas size options

Выберите метод 2, ширину и высоту как 600. Выберите опцию «центр» для якоря

Цвет холста не имеет значения, поскольку он фактически не добавляет границы изображения

Теперь на расширенном экране снова установите флажок рядом с «заказным порядком обработки» и убедитесь, что «изменение размера» является первым в списке - то есть, чтобы изменение размера было выполнено до кадрирования.

Нажмите OK

Убедитесь, что вы выбрали файлы, которые хотите преобразовать, настройте выходной каталог, а затем нажмите «Запустить пакет»

2 голосов
/ 13 сентября 2012

Irfanview может сделать то, что вы просите. Его пакетный режим имеет много опций.

Вот небольшая учебная ссылка: http://gd.tuwien.ac.at/graphics/irfantut/batchcon.html

1 голос
/ 30 июля 2014

Ищите Phatch (Linux, Mac, Windows), это именно то, что вы ищете: http://photobatch.stani.be/download/index.html

0 голосов
/ 03 февраля 2018

Не знаю, почему никто не упоминает об этом, но мой любимый multipimageresizer.net Это позволяет вам многое сделать, например обрезку, изменение формата, размера, добавление текста, водяных знаков ... и т. Д. на нескольких изображениях одновременно.

Это экономит время .. Я рекомендую!

...