¿Qué programa puede cambiar el tamaño y recortar automáticamente una carpeta de imágenes a una determinada resolución?

Me gustaría tomar una carpeta de imágenes de varios tamaños y recortarlas en un cuadrado de cuadrícula de 600x600, recortado desde el centro de la imagen. ¿Hay algún programa que pueda cambiar el tamaño y recortar automáticamente a estas dimensiones, y luego generar como un archivo .png comprimido? Para imágenes que son más pequeñas que 600x600, me gustaría que el programa aumente el tamaño de la imagen a esa dimensión.

Revisé mi Irfanview, y su recorte por lotes es estático con solo la opción de comenzar desde las esquinas y un desplazamiento fijo. No puede hacer el centrado y el cambio de tamaño condicional solicitado por el OP. No es apto para tamaños de imagen variables.
Tenía muchas esperanzas de que XnConvert pudiera hacer lo que busca, pero al igual que IrfanView, no hará un recorte centrado en tamaños de imagen arbitrarios.

Respuestas (11)

El comando Lote de Photoshop puede hacer esto. Básicamente, se 'grabaría' a sí mismo realizando el recorte, etc. una vez, luego ejecutaría la grabación en todos los archivos que desee. Si desea cambiar automáticamente el tamaño de las imágenes más pequeñas, tendrá que hacer un pequeño scripting.

Irfanview también tiene un procesador por lotes de imágenes integral, pero puede requerir un poco de experimentación para obtener los resultados que desea.

ImageMagick te permite ejecutar comandos en una ventana de comandos de Windows. Debe sentirse cómodo con la creación de archivos por lotes de DOS.

Para ver un ejemplo, consulte la última publicación de esta discusión: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=21112

Ejemplo relevante de esta publicación del foro:

@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
Es mejor si las partes relevantes de los recursos externos se citan o resumen aquí. Los enlaces externos pueden desconectarse potencialmente en cualquier momento, invalidando una respuesta que solo contiene un enlace. El enlace que proporcionó tiene una respuesta, sin embargo, le pediría que cite el comando relevante aquí en su respuesta para que sea más viable.

Primero pensé que quería cambiar el tamaño del lote, lo que muchos programas pueden hacer. Pero luego me di cuenta de que desea hacer una combinación de cambio de tamaño y recorte, y desea que la computadora calcule cómo recortar mejor 600x600 píxeles de la imagen dinámicamente.

Es porque no es un tipo de tarea de "solución verdadera", ya que generalmente es una decisión humana, cómo recortar la imagen, por lo que solo se puede hacer arrancando ciertas condiciones. Por ejemplo, mire la relación de aspecto y cambie siempre el tamaño de la dimensión más corta a X y recorte los píxeles Y (centrado/derecho/izquierdo). Si leí bien su declaración, desea recortar 600 píxeles de X e Y centrados en ambas dimensiones, si ambas dimensiones son 600 o más. ¿Y solo cambiar el tamaño a 600 si una dimensión es menor que 600?

Hace tiempo que quería agregar una función como esta a mi programa "Image View Plus More", y supongo que la configuración de la función debería ser algo como: - tamaño de recorte: ancho x alto - ancho de alineación: centro/izquierda/derecha - altura de alineación: centro/izquierda/derecha - redimensionar: no/si es menor que/si es mayor que/ambos

¿Algún ajuste más que necesites?

Actualización: ya terminé de programar esta función en Image View Plus More 2.4:

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

Cómo hacerlo: instale, arrastre y suelte las imágenes que desea recortar en él, "guarde todo en una nueva carpeta" y asígnele un nombre base o % para usar el nombre de archivo original, y luego en el siguiente cuadro de diálogo seleccione "recortar automáticamente". " y llene los cuadros para el ancho y el alto, y seleccione la alineación "centro" para el alto y el ancho, y marque "cambiar el tamaño si es más pequeño".

Hice un tutorial de cómo hacerlo:

La solución al problema de OP: http://www.youtube.com/watch?v=wBc1s6zuDJM

Otro ejemplo: http://www.youtube.com/watch?v=3nFrnaefsqA

Mira mi respuesta, escribí el código en python.
Sí, ahora no es tan estático, pero ¿estás seguro de que el OP está interesado en programar su edición de imágenes?
No tengo ni idea. El OP solo pidió un programa, así que escribí uno.
Como puede ver, ahora agregué la función y tengo ideas para mejorar, como "mostrar por ejemplo" (en la foto que se ve actualmente), para que no tenga que limitarse a centrarse o alinearse con los bordes. Por supuesto, tendría que descubrir cómo generalizar ese ejemplo a diferentes proporciones y tamaños.
¡Agradable! ¿En qué está escrito su programa y está disponible la fuente?
Lo hago en Visual Studio C++ con MFC. De ahí el aspecto de la vieja escuela. Mi diseño es simple, trabajo en las imágenes mientras las veo, no la mitad de una pantalla llena de herramientas, y no lo hago depender de DLL, por lo que es el único archivo exe. Eso significa que no estoy usando ninguna biblioteca aparte de lo que se incluye, excepto una biblioteca jpeg y dcraw, pero se compilan directamente en el ejecutable. Esto hace que sea muy rápido para trabajar. Es mi programa "abrir con predeterminado". Con cada característica me pregunto "cuál es la forma más fácil posible de lograr el resultado que quiero en cuestión de unos pocos clics".
Desafortunadamente, esto significa que es difícil comenzar, ya que debe conocer los trucos (como cómo usar blend back y buffers 1-9). Por eso empecé a hacer tutoriales. Hablando de eso, hice la función de "recorte automático por ejemplo". Hice un nuevo tutorial para mostrar eso, esta vez con un caso de la vida real.
su instalador msi necesita derechos de administrador para instalar, ¿de alguna manera puede cambiar su instalador para que sea instalado por el usuario como otras aplicaciones?

Si le gusta programar, puede usar Python (lenguaje de computadora) y una excelente biblioteca que sabe tiene PIL para recortar, cambiar el tamaño, trazar histogramas, obtener valores de píxeles individuales, etc. a nivel programático. Por lo tanto, puede escribir fácilmente un script simple para encontrar todas las imágenes en una carpeta y realizar la operación.

Este código debería hacer exactamente lo que desea y debería procesar un par de imágenes por segundo, según el tamaño de la imagen:

#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

Cuando comienzas a trabajar en el nivel programático, ¡entonces el cielo es el límite! Incluso es posible detectar caras y recortar alrededor de la cara, lo que le permite recortar de forma inteligente miles de fotos...

[actualizado el 12/09/2012]

ThumbsPlus puede hacer lo que usted solicite. En el menú Imagen, seleccione Proceso por lotes o presione F12 y responda las indicaciones interactivas. Puede agregar múltiples operaciones a un conjunto y guardarlo para uso inmediato y futuro. En el futuro, simplemente acceda al nombre del conjunto que configuró previamente para ejecutarlo automáticamente en un directorio o selección de fotos, o incluso en un árbol de directorios completo.

Al construir el conjunto, se le proporciona una imagen de muestra para ilustrar la opción que ha agregado a las operaciones.

Tenga cuidado al construir el conjunto, ya que el orden de las operaciones es importante.

Sizzlepig.com es una herramienta en línea que hará esto fácilmente, puede configurar el tamaño del "plano" en 600x600 y luego hacer que recorte todas las imágenes.

Para la parte "Para imágenes que son más pequeñas que 600x600, me gustaría que el programa aumente el tamaño de la imagen a esa dimensión". Recomiendo encarecidamente NO intentar mejorar las imágenes, sino tratar de encontrar una fuente de mayor calidad con la que trabajar. Sé que no siempre es posible, pero dará como resultado una salida de mucha mayor calidad que intentar mejorar.

(Trabajo para sizzlepig, pero sigue siendo una gran herramienta)

Consulte las preguntas frecuentes . Está bien mencionar tus propias cosas aquí, pero debes decirlo.
Enfriar. Bienvenido al sitio, quédese y responda y haga algunas otras preguntas. :)

Irfanview puede hacer lo que estás pidiendo. Su modo por lotes tiene muchas opciones.

Aquí hay un pequeño enlace tutorial: http://gd.tuwien.ac.at/graphics/irfantut/batchcon.html

Irfanview puede hacer esto, pero requiere un poco de configuración.

Utilice la opción de conversión por lotes. Elija "PNG" como su formato de salida. Haga clic en el botón "opciones" al lado del formato de salida y elija la compresión que desea y haga clic en Aceptar

Marque la casilla que dice "Usar opción avanzada" y luego haga clic en el botón "avanzado"

Verás esta ventana

Configuración avanzada de Irfanview

Configure el cambio de tamaño con el lado más corto 600. Asegúrese de marcar "preservar la relación de aspecto" y "usar la función de remuestreo". Desmarque "No ampliar imágenes más pequeñas"

Si está reduciendo drásticamente el tamaño de sus imágenes originales, puede marcar la casilla "nítida" y agregar un valor. Mi requerimiento era para imágenes de tamaño 150x150 y descubrí que necesitaban un valor de nitidez de alrededor de 20 para igualar la calidad de imagen que obtenía de Photoshop. Para sus imágenes de 600x600, es posible que no necesite un valor de nitidez, por lo que puede desmarcar esa opción.

En lugar de usar "recortar", use la configuración "tamaño del lienzo"; asegúrese de marcar la opción

Haga clic en el botón "Configuración" junto a la opción de tamaño de lienzo. Verás esta ventana

Opciones de tamaño de lienzo de Irfanview

Seleccione el método 2 y ancho y alto como 600. Elija la opción "centro" para el ancla

El color del lienzo no importa, ya que en realidad no agregará un borde de imagen

Ahora, en la pantalla avanzada, vuelva a marcar la casilla junto a "orden de procesamiento personalizado" y asegúrese de que el "cambio de tamaño" sea el primero en la lista, es decir, que el cambio de tamaño se realice antes del recorte.

Haga clic en Aceptar

Asegúrese de haber seleccionado los archivos que desea convertir, configure el directorio de salida y luego haga clic en "iniciar lote"

Busque Phatch (Linux, Mac, Windows), es exactamente lo que está buscando: http://photobatch.stani.be/download/index.html

Hay una utilidad con múltiples opciones disponibles en http://pixresizer.software.informer.com/

Este es un buen software. Buen medio, fácil de usar y más rápido en el trabajo. Como hago fotografía, lo uso para procesar imágenes por lotes. Muchas veces necesito reducir el tamaño de las fotos para compartirlas en internet. También probé algún otro software, pero este me pareció bueno. (No estoy asociado con esta empresa.)

¿El software es bueno? ¿Por qué? ¿Está relacionado con la empresa?
Hola Paul, Sí, este es un buen software. Buen medio, fácil de usar y más rápido en el trabajo. Como hago fotografía, lo uso para procesar imágenes por lotes. También probé algún otro software, pero me pareció bueno. ¡No!, no estoy asociado con esta empresa.
Mahesh, ¿puedes tomar tus comentarios y editar tu respuesta? No todo el mundo lee los comentarios. Y cuéntanos más y más al respecto, ¡nos encantaría saberlo!

No sé por qué nadie lo menciona, pero mi favorito es multipleimageresizer.net . Te permite hacer muchas cosas como recortar, cambiar el formato, el tamaño, agregar texto, marca de agua... etc. en varias imágenes al mismo tiempo.

Este es un ahorro de tiempo real... ¡Lo recomiendo!