[PS CS4-CS6] Пакетная обработка - наложение слоев и сохранение файлов

АКрам

Участник
Топикстартер
Сообщения
4
Реакции
0
Добрый день! Никогда раньше не занимался подобным, вот прошу совета - возникла необходимость автоматизировать процесс.

Имеется подготовленный фон, предположим в .png
На этот фон надо накладывать по отдельности каждый из группы .png файлов ( с прозрачностью, размер под фон и положение непрозрачных частей предположим уже подогнаны)
Сохранять каждый результат наложения файла на фон надо под именем этого png - ну может добавив там "готово" или "ок" чтобы файловая система не ругалась каждый раз.
Как это возможно реализовать - вероятно, экшены?
 
Код:
@echo off
setlocal enabledelayedexpansion
chcp 1251 > nul
set argCount=0
for %%x in (%*) do (
   set /A argCount+=1
   set "argFnIn[!argCount!]=%%~x"
   set "argFnOut[!argCount!]=%%~dpnx_out.png"
)
for /L %%i in (1,1,%argCount%) do echo convert  !argFnIn[%%i]! to !argFnOut[%%i]! & "c:\ProgramPortable\ImageMagick_Q8-x64\convert.exe" "d:\back.png" "!argFnIn[%%i]!" -gravity center -composite "!argFnOut[%%i]!"
Скопировать код, вставить в блокнот, сохранить с расширением cmd
Вместо "c:\ProgramPortable\ImageMagick_Q8-x64\convert.exe" пропишите свой путь к программе
Вместо "d:\back.png" пропишите свой путь к фоновой картинке
Создать ярлык сохраненного cmd файла на рабочем столе, выделять скопом файлы, тащить на ярлык.
 
Огромное спасибо, но у меня Мак Catalina... Буду пробовать сам перевести это в макось.
 
Последнее редактирование:
Огромное спасибо, но у меня Мак Catalina... Буду пробовать сам перевести это в макось.
@echo off
setlocal enabledelayedexpansion #не похоже что это заработает#
chcp 1251 > nul #не уверен что Макоси нужно что-то делать с кодировкой#
set argCount=0
for %%x in (%*) do (
set /A argCount+=1
set "argFnIn[!argCount!]=%%~x"
set "argFnOut[!argCount!]=%%~dpnx_out.png"
)
for /L %%i in (1,1,%argCount%) do echo convert !argFnIn[%%i]! to !argFnOut[%%i]! & "
/Applications/ImageMagick-7.0.10/include/ImageMagick-7/MagickWand/convert.h" "/Users/User/Desktop/background.png" "!argFnIn[%%i]!" -gravity center -composite "!argFnOut[%%i]!"

#вот так или примерно так должны выглядеть пути к исполняемому файлу и подложке#

абсолютно не удивлен, что не работает :)
 
Конвертация вашего .bat файла в AppleScript требует понимания, как обрабатывать аргументы и выполнять команды. Вот пример того, как можно реализовать аналогичную логику в AppleScript. Однако имейте в виду, что AppleScript не поддерживает работу с аргументами командной строки так же, как это делает .bat файл.

▎Пример AppleScript

Код:
-- Путь к ImageMagick
set convertPath to "/Applications/ImageMagick-7.0.10-Q16/magick" -- Убедитесь, что путь корректный

-- Получаем список файлов (например, из диалогового окна выбора)
set inputFiles to choose file with prompt "Выберите файлы для обработки" with multiple selections allowed

set argCount to count of inputFiles

repeat with i from 1 to argCount
    set inputFile to item i of inputFiles
    set outputFile to (inputFile as text) & "_out.png"
    
    -- Создание команды для выполнения
    set command to convertPath & " d:/back.png " & quoted form of POSIX path of inputFile & " -gravity center -composite " & quoted form of POSIX path of outputFile
    
    -- Выполнение команды
    do shell script command
end repeat


▎Объяснение:

1. Путь к ImageMagick: Убедитесь, что путь к magick или convert в вашем случае правильный.

2. Выбор файлов: Используется диалоговое окно для выбора файлов. Вы можете изменить этот подход в зависимости от вашего сценария.

3. Цикл обработки файлов: Для каждого выбранного файла создается соответствующий выходной файл с добавлением _out.png.

4. Выполнение команды: Команда выполняется с помощью do shell script.

▎Замечания:

• Убедитесь, что у вас установлен ImageMagick и путь к нему указан правильно.

• AppleScript не поддерживает задержку выполнения или другие конструкции управления потоком, как в .bat, но можно использовать циклы и условия.

• Если вы хотите передавать аргументы в скрипт, вам нужно будет использовать другой метод, например, запускать AppleScript из терминала с параметрами.
 
Благодарю! Буду пробовать!

Но идеально было бы, конечно, найти готовое работающее приложение, которое делает пакетную замену фона так, как накладывают водяные знаки!