Я хотел бы взять папку с изображениями разных размеров и обрезать их до квадрата сетки 600x600, вырезанного из середины изображения. Есть ли программа, которая может автоматически изменять размер и обрезать до этих размеров, а затем выводить в виде сжатого файла .png? Для изображений размером менее 600x600 я бы хотел, чтобы программа увеличивала размер изображения до этого размера.
Пакетная команда Photoshop может сделать это. По сути, вы должны «записать» себя, выполняя обрезку и т. Д. Один раз, а затем запустить запись для всех файлов, которые вы хотите. Если вы хотите автоматически изменять размер меньших изображений, вам придется написать небольшой скрипт.
Irfanview также имеет комплексный пакетный процессор изображений, но может потребоваться немного экспериментов, чтобы получить желаемые результаты.
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
Сначала я подумал, что вы хотите изменить размер пакета, что могут сделать многие программы. Но потом я понял, что вы хотите выполнить комбинацию изменения размера и обрезки, и вы хотите, чтобы компьютер вычислил, как лучше всего динамически вырезать 600x600 пикселей из изображения.
Это потому, что это не задача типа «единственное верное решение», как это обычно вызывает человеческое суждение, как обрезать изображение, поэтому это можно сделать только путем начальной загрузки определенных условий. Например, посмотрите на соотношение сторон и всегда изменяйте размер кратчайшего измерения на X и обрезайте Y (по центру/справа/слева) пикселей. Если я правильно прочитал ваше заявление, вы хотите обрезать 600 пикселей по осям X и Y по центру обоих измерений, если оба измерения равны 600 или более. И изменить размер до 600, только если одно измерение меньше 600?
Я давно хотел добавить подобную функцию в свою программу «Image View 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 (компьютерный язык) и отличную библиотеку, в которой есть 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.09.2012]
ThumbsPlus может сделать то, что вы просите. В меню «Изображение» выберите «Пакетная обработка» или нажмите F12 и ответьте на интерактивные подсказки. Вы можете добавить несколько операций в набор и сохранить его для немедленного использования, а также для использования в будущем. В будущем просто получите доступ к названию набора, которое вы ранее настроили, чтобы автоматически запускать его в каталоге или выбранных фотографиях или даже во всем дереве каталогов.
При сборке набора вам предоставляется образец изображения, иллюстрирующий вариант, который вы добавили к операциям.
Будьте внимательны при построении набора, так как важен порядок операций.
Sizzlepig.com — это онлайн-инструмент, который легко сделает это, вы можете установить размер «чертежа» 600x600, а затем обрезать все изображения по центру.
Для части «Для изображений размером менее 600x600 я бы хотел, чтобы программа увеличила размер изображения до этого размера». Я настоятельно рекомендую НЕ пытаться масштабировать изображения, а попытаться найти источник более высокого качества для работы. Я знаю, что это не всегда возможно, но это приведет к гораздо более высокому качеству вывода, чем попытка масштабирования.
(Я работаю на sizzlepig, но это все равно отличный инструмент)
Irfanview может сделать то, о чем вы просите. Его пакетный режим имеет множество опций.
Вот небольшая ссылка на учебник: http://gd.tuwien.ac.at/graphics/irfantut/batchcon.html
Irfanview может это сделать, но требует небольшой настройки.
Используйте опцию пакетного преобразования. Выберите «PNG» в качестве выходного формата. Нажмите кнопку «Параметры» рядом с выходным форматом, выберите желаемое сжатие и нажмите «ОК».
Установите флажок «Использовать дополнительные параметры», затем нажмите кнопку «Дополнительно».
Вы увидите это окно
Настройте изменение размера с самой короткой стороной 600. Убедитесь, что вы отметили «сохранить соотношение сторон» и «использовать функцию повторной выборки». Снимите флажок «Не увеличивать изображения меньшего размера».
Если вы резко уменьшаете размер ваших исходных изображений, вы можете поставить галочку в поле «резкость» и добавить значение. Моим требованием были изображения размером 150x150, и я обнаружил, что им нужно значение резкости около 20, чтобы соответствовать качеству изображения, которое я получал из фотошопа. Для ваших изображений 600x600 вам может не понадобиться значение резкости, поэтому вы можете снять этот флажок.
Вместо использования «обрезки» используйте настройку «размер холста» — убедитесь, что вы отметили эту опцию.
Нажмите кнопку «Настройки» рядом с параметром размера холста. Вы увидите это окно
Выберите метод 2, а также ширину и высоту 600. Выберите параметр «центр» для якоря.
Цвет холста не имеет значения, так как на самом деле он не добавит границу изображения.
Теперь на расширенном экране снова поставьте галочку напротив "пользовательский порядок обработки" и убедитесь, что "ресайз" стоит первым в списке - т.е. чтобы ресайз делался до обрезки.
Нажмите ОК
Убедитесь, что вы выбрали файлы, которые хотите преобразовать, настроили выходной каталог, а затем нажмите «Начать пакет».
Ищите Phatch (Linux, Mac, Windows), это именно то, что вы ищете: http://photobatch.stani.be/download/index.html
На http://pixresizer.software.informer.com/ есть утилита с несколькими опциями.
Это хорошее программное обеспечение. Хорошее средство, простое в использовании и быстрое в работе. Поскольку я занимаюсь фотографией, я использую его для обработки изображений в пакетном режиме. Много раз мне нужно уменьшить размер фотографий, чтобы поделиться ими через Интернет. Я также пробовал некоторые другие программы, но нашел это хорошим. (Я не связан с этой компанией.)
Не знаю, почему никто не упоминает об этом, но мне больше всего нравится multiimageresizer.net . Он позволяет вам выполнять множество действий, таких как обрезка, изменение формата, размера, добавление текста, водяных знаков и т. д. на нескольких изображениях одновременно.
Это реально экономит время. Я рекомендую!
Майкл Нильсен
Марк Уитакер