Gimp: Cómo crear una selección desde un archivo en Python

Estoy usando el modo no interactivo de Gimp, ya que quiero procesar una gran cantidad de imágenes y sus máscaras. Para cada archivo de imagen, tengo un archivo de imagen de máscara, que consta de 1 y 0 (1 significa que se debe seleccionar el píxel). ¿Cómo los selecciono en Python? Estoy mirando la referencia aquí . Lo que veo es que hay una función llamada gimp_selection_load, que carga la selección de un canal. Sin embargo, no sé cómo convertir la imagen de la máscara en un canal. Intenté leerlo con gimp_file_loady luego gimp_image_get_channels, pero no se encontraron canales en la imagen de la máscara. ¿Qué estoy haciendo mal?

Respuestas (1)

La forma más sencilla es cargar su máscara como una nueva capa, hacer una selección de color y luego eliminarla. Entonces, asumiendo que esa imagees tu imagen actual:

import gimpcolor

# load mask as layer
mask=pdb.gimp_file_load_layer(image,'/path/to/mask.png')
pdb.gimp_image_add_layer(image, mask,0)

# get selection
pdb.gimp_image_select_color(image, CHANNEL_OP_REPLACE, mask,gimpcolor.RGB(0,0,0))

# drop the mask layer
pdb.gimp_image_remove_layer(image,mask)
"copiar la capa a un canal en la imagen inicial" ¿cómo hago eso? ¿Qué función debo usar?
La copia del canal es más complicada de lo que parece. Ver respuesta editada para una solución más simple. Si realiza secuencias de comandos por lotes, algunas sugerencias y código de muestra aquí .
Fantástico. ¡He estado luchando con esto durante bastante tiempo y resultó que mi principal error fue olvidar quitar la capa! Es genial que hayas incluido un fragmento.