01-14-2024, 03:02 PM 
	
	
	
		Hello,
I have a problem with script in Python-FU. I want to run the script by drag-and-drop two files on .bat file.
Script is working fine when I run it from GIMP menu, but from .bat i receive error:
.bat file:
file-import-as-layer.py
What arguments I need to specify?
	
	
	
I have a problem with script in Python-FU. I want to run the script by drag-and-drop two files on .bat file.
Script is working fine when I run it from GIMP menu, but from .bat i receive error:
Code:
Error: Invalid number of arguments for python-fu-file-import-as-layer (expected 5 but received 2).bat file:
Code:
@echo off
setlocal enabledelayedexpansion
if "%~2"=="" (
    echo Please provide two file paths.
    pause
    exit /b
)
set "file1=%~1"
set "file2=%~2"
start "" "C:\Program Files\GIMP 2\bin\gimp-2.10.exe" -b "(python-fu-file-import-as-layer \"%file1%\" \"%file2%\")"
exit /bfile-import-as-layer.py
Code:
#!/usr/bin/env python2
from gimpfu import *
def file_import_as_layer(fname_one, fname_two, image, layer):
    try:
        # Load the main image
        image = pdb.gimp_file_load(fname_one, fname_one)
        # Check if the image loaded successfully
        if not image:
            raise Exception("Failed to load the main image.")
        # Load the second image as a layer
        drawable2 = pdb.gimp_file_load_layer(image, fname_two)
        # Check if the layer loaded successfully
        if not drawable2:
            raise Exception("Failed to load the second image as a layer.")
        # Make sure the second layer is visible
        pdb.gimp_item_set_visible(drawable2, True)
        # Get the layer position in the layer stack
        position = len(image.layers)
        # Create a new image for both layers
        new_image = pdb.gimp_image_new(image.width, image.height, image.base_type)
        # Duplicate the main layer
        new_layer_main = pdb.gimp_layer_new_from_drawable(image.layers[0], new_image)
        
        # Duplicate the second layer
        new_layer_inserted = pdb.gimp_layer_new_from_drawable(drawable2, new_image)
        
        # Insert the main layer into the new image
        pdb.gimp_image_insert_layer(new_image, new_layer_main, None, 0)
        # Insert the second layer into the new image
        pdb.gimp_image_insert_layer(new_image, new_layer_inserted, None, 1)
        # Show the new image with both layers
        gimp.Display(new_image)
    except Exception as e:
        pdb.gimp_message("Error: {}".format(str(e)))
# Register the Python-fu script
register(
    "python_fu_file_import_as_layer",
    "Import a file as a layer",
    "Import a file as a layer into the current image",
    "Author",
    "Author",
    "2024",
    "<Image>/File/Import As Layer...",
    "*",
    [
        (PF_STRING, "fname_one", "Main Image", ""),
        (PF_STRING, "fname_two", "Image to import as layer", "")
    ],
    [],
    file_import_as_layer
)
main()What arguments I need to specify?

 

 

