PNG Cambiar el tamaño de lote y guardar mientras se preserva la transparencia


10

Tengo más de 700 imágenes png. Necesito cambiar el tamaño y guardarlos. Sin embargo, también necesito que su transparencia esté intacta.

Intenté Irfanview, pero eso no funcionó. GIMP funciona, pero no puedo encontrar una opción para guardar lotes. No voy a cambiar el tamaño manualmente y guardar más de 700 imágenes. Eso es muy tedioso.

¿Hay alguna aplicación que haga el trabajo que necesito?


¿Has probado ImageMagick?
slhck

No, pero ¿no es eso para servidores?
Oso gruñón el

1
¿Qué quieres decir con servidores? Es un software de línea de comandos que se puede ejecutar en cualquier sistema operativo.
slhck

Si, no La línea de comando no es mi fuerza. Necesito algo con una GUI práctica.
Oso gruñón el

@DonSalva puedes hacerlo dentro de 2 líneas de cmd usando ffmpeg, incluso sin fuerza
Jet

Respuestas:


10

Lo sentimos, tendrás que usar la línea de comando. Realmente dudo mucho que puedas encontrar un programa GUI para lidiar con esto.

No ha especificado qué sistema operativo está utilizando. En Linux, el siguiente comando redimensionará todos los archivos .png en el directorio actual. Tenga en cuenta que sobrescribirá las imágenes originales:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Tenga en cuenta que, para la línea de Windows, si lo está utilizando en un script en lugar de en la línea de comandos, debe usarlo en %%ilugar de hacerlo %i.


Otra opción sería la secuencia de comandos GIMP . Este script cambiará el tamaño de su imagen ( fuente ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Guárdelo como batch_resize.scmen el scriptsdirectorio de GIMP , luego ejecútelo de la siguiente manera:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

ACTUALIZAR:

Me topé con esta publicación que sugiere que el plugin GIMP David's Batch Processor debería hacer exactamente lo que quieres. El artículo trata sobre Linux, pero hay un enlace a una versión de Windows en la página del complemento.


Lo malo, siempre olvidé el sistema operativo. Es Win7 de 64 bits.
Gruñón viejo '

Bueno, ImageMagick tiene una versión de Windows y también deberías (de alguna manera) usar el script GIMP en Windows.
terdon

@DonSalva ver respuesta actualizada.
terdon

ImageMagick es una herramienta increíble para este tipo de trabajo. ¡Aprende a usarlo y te encantará para siempre!
Lee Harrison el

Todo gracias a @evilsoup por agregar la línea de comando de Windows.
terdon

4

Creo que la herramienta ImBatch puede ayudarlo con su tarea. Funciona bien con Win7 x64 para mí. Es gratis.


Gran herramienta, mucho más flexible que IrfanView y compatible con png con alfa - ¡gracias!
Tomáš Kafka

3

XNConvert tiene una GUI simple e intuitiva para esas tareas.

XnConvert es un potente y gratuito procesador de imágenes por lotes multiplataforma, que le permite combinar más de 80 acciones. Compatible con 500 formatos. Utiliza el módulo de procesamiento por lotes de XnViewMP

  • procesamiento por lotes
  • preserva la transparencia (probado con un PNG transparente )
  • cambio de tamaño automático o predefinido
  • no necesita instalación

ingrese la descripción de la imagen aquí


Intenté esto y no mantuvo la transparencia (versión para Mac). ¿Qué tipo de remuestreo se usa (usé Lanczos como lo hiciste)?
niico

Lo resolví yo mismo: el uso de Muestreo bilineal lo hace. Puede ver en la ventana 'Después' cómo se verá: si el área transparente es negra, sabe que no va a funcionar.
niico

@niico Ahora probé 3 métodos de remuestreo diferentes, Lanczos también. Todos producen imágenes transparentes. Tal vez la versión MAC funcione de manera diferente
nixda el

Probé esto en PC y Mac, idéntico en ambos. Además, ahora noto que el remuestreo que hice es irregular como el infierno e inutilizable.
niico

2

Por defecto, usar FFMpeg es la forma más corta :)
Descárguelo aquí , colóquelo en la carpeta con sus archivos, abra la línea de comandos, vaya a su carpeta (con cd) y escriba allí:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

y cambia 32x32con tu talla. Cambiará el tamaño de sus PNG y lo colocará en la Resizedcarpeta.
Esto hará el trabajo sin archivo por lotes. Sin embargo, si desea poner esto en el archivo bat, escriba %%en lugar de %.

Espero que te ayude.


0

No he probado ImBatch o XNConvert, que otros mencionaron aquí, pero aquí hay algunas sugerencias más para usted:

  • pngquant (una herramienta de línea de comandos. Yo mismo, utilicé la GUI de Windows PNGoo incluida en la página)
  • Cuantizador de color (muchas posibilidades para ajustar la configuración para usar varios algoritmos de interpolación, etc. Nunca lo hice funcionar tan bien como PNGoo / pngquant, pero eso podría deberse a mi conocimiento limitado).
  • TinyPNG.com (el servicio web gratuito tiene un límite de 20 archivos, cada uno de menos de 5 MB)

0

Tuve este mismo problema muchas veces, y tuve Photoshop instalado la mayoría de esas veces. Así que armé este script usando algunas inspiraciones del código de otros.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Uso

  • Instale Photoshop CC o una versión más nueva.
  • Abre el script en Photoshop.
  • Un cuadro de diálogo le pedirá que elija una carpeta de origen.
  • Un cuadro de diálogo le pedirá que elija una carpeta de destino.
  • Otro diálogo le preguntará el ancho y la altura máximos.
  • Otro cuadro de diálogo le pedirá el ancho ideal, luego la altura ideal.
  • Espere mientras el script abrirá todos los archivos PSD o AI que tenga en su carpeta de origen y guárdelos como PNG-24 transparente.
  • Un cuadro de diálogo le avisará cuando haya terminado.

Referencias

Había más de 2 enlaces de referencia, mi reputación actual no me permite publicar más. Vea el guión original ya que las referencias están documentadas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.