Я использую следующий сценарий для пакетной обработки некоторых файлов изображений с помощью GIMP script-fu:
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(imagelayer (car (gimp-image-get-layers image)))
(bglayer (car (gimp-layer-new image 8400 5939 1 ""bg"" 100 LAYER-MODE-NORMAL))))
(gimp-image-add-layer image bglayer 1)
(gimp-layer-set-offsets (car (gimp-image-get-layers image)) 0 870)
Строка 2 загружает изображение, строка 3 получает один слой изображения, строка 4создает новый фоновый слой, строка 5 добавляет новый слой к изображению, а строка 6 устанавливает смещения слоя изображения.
Однако строка 6 выдает следующую ошибку:
GIMP-Error: Calling error for procedure 'gimp-layer-set-offsets':
Procedure 'gimp-layer-set-offsets' has been called with an invalid ID for
argument 'layer'. Most likely a plug-in is trying to work on a layer that
doesn't exist any longer.
Я попытался изменить строку 6 на следующую, но я получаю ту же ошибку:
(gimp-layer-set-offsets imagelayer 0 870)
Странно то, что ошибка не появляется всегда, иногда процедура проходит без ошибки.
Это ошибка в GIMP или ошибка в моем скрипте?