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

11

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

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

Ответы:

12

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

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

ElendilTheTall
источник
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
Rene
источник
Лучше всего, если соответствующие части внешних ресурсов цитируются или суммируются здесь. Внешние ссылки могут в любой момент отключиться, что приведет к аннулированию ответа, содержащего только ссылку. Ссылка, которую вы предоставили, содержит ответ, однако я бы попросил вас указать соответствующую команду в своем ответе, чтобы сделать ее более жизнеспособной.
Ириса
7

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

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

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

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

Обновление: теперь я закончил программирование этой функции в Image View Plus Подробнее 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

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

[обновлено 09/12/2012]

Onlyjus
источник
4

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

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

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

Виктор Энгель
источник
4

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

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

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

Jeremy
источник
Пожалуйста, смотрите FAQ . Здесь можно упомянуть свои собственные вещи, но вы должны это сказать.
Пожалуйста, прочитайте мой профиль
1
Круто. Добро пожаловать на сайт, оставайтесь рядом, отвечайте и задавайте другие вопросы. :)
Пожалуйста, прочитайте мой профиль
2

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

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

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

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

Расширенные настройки Irfanview

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

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

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

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

Параметры размера холста Irfanview

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

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

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

Нажмите ОК

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

натуральный
источник
0

Существует утилита с несколькими вариантами, доступными на http://pixresizer.software.informer.com/

Это хорошее программное обеспечение. Хорошие средства, просты в использовании и быстрее в работе. Поскольку я делаю фотографию, я использую ее для обработки изображений в пакетном режиме. Много раз мне нужно уменьшить размер фотографий, чтобы поделиться ими через Интернет. Я также попробовал какое-то другое программное обеспечение, но нашел это хорошим. (Я не связан с этой компанией.)

Махеш Манкар
источник
Хорошее ли программное обеспечение? Почему? Вы связаны с компанией?
Пол Сезанн
Привет Пол, да, это хорошее программное обеспечение. Хорошие средства, просты в использовании и быстрее в работе. Поскольку я делаю фотографию, я использую ее для обработки изображений в пакетном режиме. Я также попробовал какое-то другое программное обеспечение, но оно мне показалось хорошим. Нет !, я не связан с этой компанией.
Махеш Манкар
Махеш, можешь взять свои комментарии и отредактировать свой ответ? Не все читают комментарии. И расскажите нам все больше и больше об этом, мы хотели бы знать!
Пол Сезанн
0

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

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

538ROMEO
источник