LoginSignup
1
0

More than 3 years have passed since last update.

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

Posted at

前提

OS=Windows10
Software=ImageMagick 7.0.10-19 Q16 x64 2020-06-12 (動作確認時のバージョン)

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

経緯

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

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

概要

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

インストール 

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
でバージョン確認できます。

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

気軽にコメント下さい。また下記でもOKです。
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という無料ソフトで作成しました。デフォの人型モデルの、身長とか目の大きさとか簡単に変えてモデルを作成出来ます。
yomox9 - VRoid HubVRoid Hub https://hub.vroid.com/users/7959534

cset.bat

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_
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0