Para un proyecto de desarrollo de juegos de hobby, estoy buscando una manera de automatizar el siguiente flujo de trabajo, puede ser en cualquier herramienta de edición de fotos/imágenes.
En resumen, tome una imagen de alta resolución, haga selecciones múltiples y luego exporte cada selección a un archivo PNG separado, mientras exporta también una lista de las coordenadas de las selecciones a un archivo de texto. Vea lo que quiero decir en la imagen simulada a continuación:
Ahora estoy haciendo todos estos pasos a mano y la mayoría de las imágenes tienen 70-80 partes. Cada vez que hay un error, actualizaciones de imagen, cambios en la resolución, etc., tengo que rehacer partes grandes o incluso todo, aunque las selecciones sean aproximadamente las mismas.
Algunos programas de edición de fotos admiten complementos y secuencias de comandos, y puedo hacer secuencias de comandos (lua, python, javascript) sin problemas. Pero no conozco ningún editor de fotos que admita guardar selecciones múltiples . Si conoce una buena solución para esto en cualquier editor de fotos, como Painshop, PhotoShop, Coral Draw o un programa OpenSource como Gimp o Paint Dot Net, etc., hágamelo saber.
Pero no conozco ningún editor de fotos que admita guardar selecciones múltiples.
Una solución para Gimp:
Select>To path
(usando la pdb.plug_in_sel2path(image, drawable)
función). Esto creará una ruta hecha de varios "trazos", siendo cada trazo una curva cerrada que representa uno de los elementos seleccionados (*).Para ver algunos scripts de Gimp de muestra en Python, incluido un conjunto completo que trata principalmente con rutas, consulte aquí y aquí .
(*) Algunos conceptos básicos de las rutas de Gimp :
selection to path
para crear una lista completa paths
y cambiar el nombre de cada path
una a un nombre útil. Pero entonces, ¿podría usarse una secuencia de comandos custom.py para iterar a través de todas estas rutas, convertir cada ruta nuevamente en selecciones y guardarla como un archivo png? ¿Es ese el enfoque al que te refieres?Una solución (parcial/que aún no funciona) para GIMP, utilizando las piezas separadas ("trazos") de una selección:
Coloque el script GIMP de Andrew Kvalheim en un archivo ~/.gimp-2.8/scripts/export-selected-regions.scm
(o el lugar equivalente en Windows / Mac OS X).
Inicie GIMP.
Crea tu selección.
Elija "Seleccionar → Exportar regiones seleccionadas" en el menú. (Este es el nuevo elemento de menú agregado por el script).
Advertencias:
A partir de GIMP 2.8, este script no funcionó y se quejó del "formato de imagen desconocido". Por lo tanto, necesitará una actualización, pero luego proporcionará una solución. Informe en los comentarios cuando lo haga funcionar.
En comparación con una solución basada en rutas (en las otras respuestas aquí), esta solución necesita menos clics para definir las selecciones, pero solo es aplicable si (1) no necesita nombres autodefinidos para sus imágenes de salida y (2) ninguna de sus piezas de selección se superpone (ya que eso daría como resultado un "trazo" combinado al definir la selección y, en consecuencia, en una imagen de salida para ese "trazo").
Una solución (parcial/que aún no funciona) para GIMP, que utiliza un proceso semiautomático rápido de "hacer una selección, guardarla como PNG, repetir":
Coloque la secuencia de comandos Guardar área en un archivo ~/.gimp-2.8/scripts/savearea.scm
(o el lugar equivalente en Windows / Mac OS X).
Inicie GIMP.
Vaya a "Editar → Métodos abreviados de teclado" y asigne un método abreviado de teclado al elemento de menú "Archivo → Guardar área" (el agregado por el script que instaló). Puede usar una sola tecla sin modificador, por ejemplo /
.
Para usar el guión:
Advertencias: el script se actualizó por última vez en 2007, por lo que probablemente no funcionará en un GIMP 2.8 actual (aunque no lo probé). Pero es una solución parcial que podría arreglarse. Además, las instrucciones de instalación mencionan que si el script no funciona, se deben convertir las imágenes de origen a un formato diferente. PNG con "Imagen → Modo → RGB" parece una buena opción, ya que el script usa ese formato para guardar las selecciones.
export_paths_to_png.py
script de Python para GIMP. La ventaja de esto es que las selecciones+nombres se almacenan en un archivo, lo cual es bueno para archivar para que luego pueda hacer algunos cambios y luego simplemente volver a exportar. Otra ventaja es que si cambia el tamaño de toda la imagen, las rutas también cambiarán de tamaño.Una solución (totalmente funcional) desarrollada por el cartel original @BdR y mencionada en este comentario . Es la solución más avanzada para GIMP hasta el momento y funciona completamente en el GIMP 2.8 actual.
Coloque el script export_paths_to_png.py en la carpeta ~/.gimp-2.8/plug-ins/
(o el lugar equivalente en Windows / Mac OS X).
En Linux, haga que ese script sea ejecutable:
chmod a+x ~/.gimp-2.8/plug-ins/export_paths_to_png.py
En Linux, haga que los archivos generados se utilicen /
en lugar de \
como separadores de directorios en el script (líneas 29 y 68 ).
Inicie GIMP.
Cree y asigne un nombre a las rutas de GIMP para cada selección:
Crea la selección.
En el cuadro de diálogo "Rutas", haga clic en "Selección de ruta".
Opcional: cambia el nombre de tu ruta. El nombre de la ruta se utilizará como nombre de archivo al guardar.
Repita para todas sus selecciones.
Haga clic en "Filtros → Rutas → Exportar rutas a PNG" (el elemento de menú agregado por el script que instaló), complete el cuadro de diálogo y haga clic en "Aceptar".
ventajas:
.xcf
. Esto ahorra trabajo cuando necesita hacer algunos cambios y volver a exportar las imágenes más tarde.orgcoords.json
junto con su directorio de salida, para usar con sus propios scripts. Si sus rutas son selecciones simples con la "Herramienta de selección de rectángulos" de GIMP, toda la información sobre ellas está contenida en el .json
archivo de esta manera.
Terminal Lateral
Terminal Lateral
BDR