@echo off
setlocal enabledelayedexpansion
:: === 設定 ===
set "source_folder=Y:\output_folder2"
set "temp_folder=Y:\temp_tiles"
set "tile_folder=Y:\output_tiles"
set "split_folder=Y:\output_split"
set "convert_path=C:\app\ImageMagick\convert.exe"
set "montage_path=C:\app\ImageMagick\montage.exe"
:: === 初期化 ===
set "count=0"
set "group=1"
mkdir "%temp_folder%" 2>nul
mkdir "%tile_folder%" 2>nul
mkdir "%split_folder%" 2>nul
:: === 画像を9枚ずつまとめて処理 ===
for %%f in ("%source_folder%\*.png") do (
set /a count+=1
set "filename!count!=%%~nf"
copy "%%f" "%temp_folder%\!count!.png" >nul
echo %%~nf>> "%temp_folder%\names_!group!.txt"
if !count! equ 9 (
set "tile_name=tile_!group!.png"
"%montage_path%" ^
"%temp_folder%\1.png" "%temp_folder%\2.png" "%temp_folder%\3.png" ^
"%temp_folder%\4.png" "%temp_folder%\5.png" "%temp_folder%\6.png" ^
"%temp_folder%\7.png" "%temp_folder%\8.png" "%temp_folder%\9.png" ^
-tile 3x3 -geometry +0+0 ^
"%tile_folder%\!tile_name!"
echo "%tile_folder%\!tile_name!"
timeout /t 5
pause
"%convert_path%" "%tile_folder%\!tile_name!" -crop 3x3@ +repage -scene 0 "%temp_folder%\split_!group!_%%d.png"
set /a index=0
for /f %%n in (%temp_folder%\names_!group!.txt) do (
set "src=%temp_folder%\split_!group!_!index!.png"
if exist "!src!" (
move /Y "!src!" "%split_folder%\%%n.png"
) else (
echo ?? ファイルが見つかりません: !src!
)
set /a index+=1
)
del /q "%temp_folder%\*.png"
del "%temp_folder%\names_!group!.txt"
set /a group+=1
set count=0
)
)
:: === 最後に余った画像があれば処理 ===
if not "!count!"=="0" (
set "tile_name=tile_!group!.png"
set "tile_args="
for /L %%i in (1,1,!count!) do (
set "tile_args=!tile_args! "%temp_folder%\%%i.png""
echo !filename%%i!>> "%temp_folder%\names_!group!.txt"
)
call %montage_path% !tile_args! -tile 3x3 -geometry +0+0 "%tile_folder%\!tile_name!"
timeout /t 5
pause
"%convert_path%" "%tile_folder%\!tile_name!" -crop 3x3@ +repage -scene 0 "%temp_folder%\split_!group!_%%d.png"
set /a index=0
for /f %%n in (%temp_folder%\names_!group!.txt) do (
set "src=%temp_folder%\split_!group!_!index!.png"
if exist "!src!" (
move /Y "!src!" "%split_folder%\%%n.png"
) else (
echo ?? ファイルが見つかりません: !src!
)
set /a index+=1
)
del /q "%temp_folder%\*.png"
del "%temp_folder%\names_!group!.txt"
)
echo 完了!分割画像を %split_folder% に保存しました!
pause
ディスカッション
コメント一覧
まだ、コメントがありません