見出し画像

複数のPNGファイルに、一気に見えないクレジットを入れるツール(cset.bat)

もしウィルス扱いされるようであれば、最後の方にあるテキストを、テキストファイルに張り付け・セーブして、cset.bat にファイル名を変えれば使えます。

----- 経緯 -----

自分が作った3Dモデル(VRoid Studioで作成)を、他の人が「自分が作った」などと言われたくないので、クレジットをPNGファイルにこっそり入れる方法を探しています。
簡単に出来る方法が無いようなので、とりあえずツールを作成しました。
(え?なんでマイクロソフトからも見捨てられたバッチファイルなの?って?他に気軽に使えるものが無いからだよ!)

より良い方法があればコメントなどで教えてください。

----- 概要 ----- 

PNGファイルにクレジット(コメント)を追記・削除(正確には空のコメント)するバッチファイル(ツール)です。
クレジットをPNGファイルに埋め込むために作成しました。

----- インストール ----- 

1.ImageMagick をインストールしてください。
https://imagemagick.org/index.php

----- 使用法 -----

1.cset.batを編集(右クリック→編集)で 「set comment=」の後ろにクレジット(コメント)を入力して保存してください。
※全角が入力できるかは確認していません

2.PNGファイルをバックアップしてください
注意:このツールは、ツールを実行したフォルダ「以下」すべてのPNGファイルを編集します。

3. ツール起動

(1).本ツールをPNGファイルのあるフォルダ(ディレクトリ)にコピー
(2).本ツールを起動します(ダブルクリックなど)
(3).メニューに従ってコメントを表示、追記、削除します
(4).Exit で終了します

----- その他 ----- 

このツールのバージョンは
Version: ImageMagick 7.0.10-19 Q16 x64 2020-06-12
で動作確認しています。

ImageMagick インストール後、インストールしたフォルダで、
コマンドプロンプトで
magick -version
でバージョン確認できます。

----- 要望、意見、バグ報告など ----- 

e-mail yomox9@gmail.com twitter https://twitter.com/4mota

その他どこかの私のウェブサイトに投稿してください。
質問する時は、「debug」を選んでからその画面をテキストにするか、
スクリーンショットを撮ってもらえると、スムーズにやりとり出来ると思います。

----- 動作の詳細 ----- 

ImageMagick のコマンドで、PNGファイルに tEXt チャンクを追記しています。
コメント表示のコマンドは自分でも理解出来ていませんw
もし、zTxt チャンクを追記する方法、またはクレジットを追記する良い方法が他にあれば教えてください。

----- 履歴 ----- 

2020/06/21 ver1.0 公開

----- クレジット -----

(C) Copyright 2020 yomox9 (TM) Some rights Reserved.

----- 私が公開してる3Dモデル(アバター) -----

VRoid Studioという無料ソフトで作成しました。デフォの人型モデルの、身長とか目の大きさとか簡単に変えてモデルを作成出来ます。

------ cset.bat ------

@echo off
setlocal enabledelayedexpansion

set comment=(C) Copyright 2020 yomox9 (TM) Some rights Reserved.

echo ver0.1 2020/06/14 First version
echo ver1.0 2020/06/21 Public version

set nulcnt=0
set cmtcnt=0
set allcnt=0
set equcnt=0

rem test
rem if exist "C:\app\MikuMikuDance_v932x64\UserFile\Model\DoctorY_v04_long_coat\tex - コピー\F00_000_00_EyeExtra_01.png" (
rem 	copy "C:\app\MikuMikuDance_v932x64\UserFile\Model\DoctorY_v04_long_coat\tex - コピー\F00_000_00_EyeExtra_01.png" .
rem )

:menu01
if "%~1" == "" (
rem	set tgt="Below current directory"
	for /f "usebackq delims=" %%a in ( `cd` ) do (
		set tgt="Below current directory. %%a"
	)
) else (
	set tgt="%~1 and other."
)
echo -- Comment Set tool to .png ---
echo Target = %tgt%
echo 0. Exit
echo 1. Show comment
echo 2. Add comment
echo 3. Delete comment

choice /c 0123q
if errorlevel 5 goto :end_
if errorlevel 4 (
	set wflg=3
	goto :next
)
if errorlevel 3 (
	set wflg=2
	goto :next
)
if errorlevel 2 (
	set wflg=1
	goto :next
)
if errorlevel 1 goto :end_

:next

if exist "%~1\" (
	echo Folder
	goto :folder_proc
) else (
	echo File
)

if "%wflg%" == "3" (
	set comment=
)

:loop
echo --- %1 ---
if not "%wflg%" == "1" (
	echo before -----
)
magick "%~1" -format "^%c" info:
echo(
if not "%wflg%" == "1" (
	magick "%~1" -set comment "%comment%" "%~1"
	echo after -----
	magick "%~1" -format "%%c" info:
	echo(
)
shift
if not "%~1" == "" goto :loop
goto :end_

:folder_proc
echo All files change below current directory. OK?
choice
if errorlevel 2 goto :loop
if "%wflg%" == "1" (
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -format "%%c" info:
		echo(
rem		for /f "usebackq delims=" %%b in ( `magick "%%~a" -format "%%c" info:` ) do (
rem			echo _ %%~b _
rem			if "%%~b" == "" (
rem				set /a equcnt=equcnt+1
rem				pause
rem			) else (
rem				set /a cmtcnt=cmtcnt+1
rem			)
rem			set /a allcnt=allcnt+1
rem		)
	)
rem	echo  equal comment !equcnt! / all comment = !allcnt!
) else if "%wflg%" == "2" (
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -set comment "%comment%" "%%~a"
		magick "%%~a" -format "%%c" info:
		echo(
	)
) else if "%wflg%" == "3" (
	set comment=
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -set comment "" "%%~a"
		echo(
)
)
goto :menu01

:nullcnt
set /a nulcnt=nulcnt+1
exit /b

:end_

よろしければサポートお願いします!いただいたサポートはただの生活費として使わせていただきます!