2025/11/03(月) [n年前の日記]
#1 [cg_tools][prog] 画像ファイルを複数のサイズで縮小したい。その2
Windows11 x64 25H2上でbatファイルと ImageMagick を使って、複数の画像を、複数のサイズで縮小して出力したい。
_昨日、 一応それっぽいbatファイルは書けたけれど、出力画像をサブディレクトリを作ってその中に保存するようにしたい。
以下のような感じになった。環境は Windows11 x64 25H2 + ImageMagick 7.1.2-8 portable Q16 HDRI x64。
_resize_image_files.bat
今回、遅延環境変数とやらに見事にハマって、動かないなと悩んでた。面倒臭いな…batファイル…。
_遅延環境変数について #Windows - Qiita
_バッチファイル界の魔境『遅延環境変数』に挑む(おまけもあるよ) - Qiita
_【バッチ】遅延環境変数について
_昨日、 一応それっぽいbatファイルは書けたけれど、出力画像をサブディレクトリを作ってその中に保存するようにしたい。
以下のような感じになった。環境は Windows11 x64 25H2 + ImageMagick 7.1.2-8 portable Q16 HDRI x64。
_resize_image_files.bat
@echo off
@REM 複数の画像ファイルをドラッグアンドドロップで渡して複数の縮小画像を作成する。
@REM 縮小画像の生成には ImageMagick 7.1.2-8 Q16-HDRI x64 (magick.exe) を利用。
chcp 65001 > NUL
@REM 遅延環境変数の使用を宣言
setlocal enabledelayedexpansion
@REM ImageMagick 7.x.x にパスを通す。常にパスを通してあるなら不要
set PATH=%IM7_PATH%;%PATH%
set MAGICKOPTA=-colorspace RGB -filter Lanczos -define filter:blur=.9891028367558475 -distort Resize
set MAGICKOPTB=-colorspace sRGB -quality 90
echo --- 縮小画像 (720ドット、1000ドット) を作成します。 ---
echo.
for %%F in (%*) do (
echo 元画像 : %%F
for %%i in (720,1000) do (
set DIRNAME=resize_%%i
set DIRPATH="%%~dpF!DIRNAME!"
if not EXIST !DIRPATH! (
@REM サブディレクトリが見つからないので作成する
mkdir !DIRPATH!
echo ディレクトリ !DIRPATH! を作成しました。
)
@REM ImageMagick で縮小画像を生成
magick %%F %MAGICKOPTA% %%ix%%i %MAGICKOPTB% "%%~dpF!DIRNAME!\%%~nF_%%i.jpg"
echo 縮小画像 !DIRNAME!\%%~nF_%%i.jpg を作成しました。
)
echo --------
)
endlocal
echo.
echo --- 処理が終わりました。何かキーを押してください。 ---
pause
- for %%i in (720,1000) do ( ) で、%%i の中に 720 と 1000 が入るループ処理ができる。
- 変数の内容が変化していく処理を書く時は、setlocal enabledelayedexpansion を呼んで、遅延環境変数とやらを使うことを宣言する。endlocal で閉じる。
- 通常、batファイルの中で変数を呼び出すときは %hoge% と書くけれど、遅延環境変数を使いたい時は !hoge! と書く。
- if not EXIST hoge ( ) で、hoge というファイル/ディレクトリが無い場合の処理を書ける。
- echo で改行だけ出力したい時は echo. と書く。
- batファイルの中ではインデントもできる。
今回、遅延環境変数とやらに見事にハマって、動かないなと悩んでた。面倒臭いな…batファイル…。
_遅延環境変数について #Windows - Qiita
_バッチファイル界の魔境『遅延環境変数』に挑む(おまけもあるよ) - Qiita
_【バッチ】遅延環境変数について
[ ツッコむ ]
#2 [python][tkinter] tkinterのGUIデザインツール Gluonix Designer を試用
Python + tkinter でGUIアプリを作りたいけれどウィジェット(GUI部品)のレイアウトが面倒臭い。何かヨサゲなGUIレイアウトツール/GUIビルダー/RADツールは無いものか。
ググっていたら、Gluonix Designer というツールがあると知った。気になる。少しだけ試用。
_GluonixDesigner - PyPI
_nucleonautomation/Gluonix-Designer
_Python Tkinter GUI Drag-and-Drop Designer - showcase - Python GUIs Forum
_【Python/Tkinter】新た(?)なGUIデザイナー「Gluonix Designer」
環境は、Windows11 x64 25H2 + Python 3.10.10 64bit。
以下でインストール。
Pythonインストールフォルダ\Scripts\ 以下に、Gluonix.exe、GluonixDesigner.exe というファイルが入るので、そのどちらかを実行すれば起動する。
かなりお洒落なウインドウが開いたけれど…。描画の更新がなんだかちょっと怪しいような…?
プレビューウインドウ上に、追加したウィジェットが表示されるので、左ボタンドラッグで位置を決めて、右ボタンドラッグでサイズを変更する模様。
レイアウトは、座標とサイズの指定しかできない ―― place しか使えないような気がする。pack か grid でレイアウトしたかったのだけどな…。そのあたりは PAGE と同じなのだろうか。
_PAGE - A Python GUI Generator
_PAGE download | SourceForge.net
ググっていたら、Gluonix Designer というツールがあると知った。気になる。少しだけ試用。
_GluonixDesigner - PyPI
_nucleonautomation/Gluonix-Designer
_Python Tkinter GUI Drag-and-Drop Designer - showcase - Python GUIs Forum
_【Python/Tkinter】新た(?)なGUIデザイナー「Gluonix Designer」
環境は、Windows11 x64 25H2 + Python 3.10.10 64bit。
以下でインストール。
pip install GluonixDesignerGluonixDesigner 6.2 がインストールされた。
Pythonインストールフォルダ\Scripts\ 以下に、Gluonix.exe、GluonixDesigner.exe というファイルが入るので、そのどちらかを実行すれば起動する。
かなりお洒落なウインドウが開いたけれど…。描画の更新がなんだかちょっと怪しいような…?
プレビューウインドウ上に、追加したウィジェットが表示されるので、左ボタンドラッグで位置を決めて、右ボタンドラッグでサイズを変更する模様。
レイアウトは、座標とサイズの指定しかできない ―― place しか使えないような気がする。pack か grid でレイアウトしたかったのだけどな…。そのあたりは PAGE と同じなのだろうか。
_PAGE - A Python GUI Generator
_PAGE download | SourceForge.net
[ ツッコむ ]
以上、1 日分です。